$NetBSD$

# Create bin and obj dirs

--- Makefile.orig	2022-11-12 14:21:36.000000000 +0000
+++ Makefile
@@ -9,42 +9,48 @@ TARGET = $(BINDIR)/dodri
 
 # Using != runs the command immediately, so the actual flags appear
 # in the compile and link commands
-GM_CPP != GraphicsMagick++-config --cppflags
-GM_LD  != GraphicsMagick++-config --ldflags --libs
+GM_CPP	!= GraphicsMagick++-config --cppflags
+GM_LD	!= GraphicsMagick++-config --ldflags --libs
 
 # compiler rules
 # -pthread appears to be unused
 # Allow user to override default compiler and optional flags using make
 # arguments or environment variables
-CXX            ?= g++
-CXXFLAGS       ?= -O3 -Wall -fno-strict-aliasing
+CXX		?= g++
+CXXFLAGS	?= -O3 -Wall -fno-strict-aliasing
 
 # Add required flags
-CXXFLAGS       += -I$(INCDIR) $(GM_CPP)
-LDFLAGS                += $(GM_LD)
+CXXFLAGS	+= -I$(INCDIR) $(GM_CPP)
+LDFLAGS		+= $(GM_LD)
 
-DEBUG  = -g
+DEBUG		= -g
 
-SOURCES                := $(wildcard $(SRCDIR)/*.cpp) $(wildcard $(SRCDIR)/io/*.cpp)
-INCLUDES       := $(wildcard $(INCDIR)/*.h)
-OBJECTS                := $(SOURCES:$(SRCDIR)/%.cpp=$(OBJDIR)/%.o)
+SOURCES		:= $(wildcard $(SRCDIR)/*.cpp) $(wildcard $(SRCDIR)/io/*.cpp)
+INCLUDES	:= $(wildcard $(INCDIR)/*.h)
+OBJECTS		:= $(SOURCES:$(SRCDIR)/%.cpp=$(OBJDIR)/%.o)
 
 # Default install tools, can be overridden by user
-MKDIR          ?= mkdir
-INSTALL                ?= install
+MKDIR		?= mkdir
+INSTALL		?= install
 
 # Support staged installs.  Most package managers will provide
 # DESTDIR and PREFIX.
-DESTDIR                ?= stagedir
-PREFIX         ?= /usr/local
+DESTDIR		?= stagedir
+PREFIX		?= /usr/local
 
 all: $(TARGET)
 
-$(TARGET): $(OBJECTS) $(INCLUDES)
+$(BINDIR):
+	$(MKDIR) -p $(BINDIR)
+
+$(OBJDIR)/io:
+	$(MKDIR) -p $(OBJDIR)/io
+
+$(TARGET): $(BINDIR) $(OBJECTS) $(INCLUDES)
 	$(CXX) $(OBJECTS) $(LDFLAGS) -o $@
 
-$(OBJDIR)/%.o: $(SRCDIR)/%.cpp $(INCLUDES)
-	       $(CXX) $(CXXFLAGS) -c $< -o $@
+$(OBJDIR)/%.o: $(SRCDIR)/%.cpp $(INCLUDES) $(OBJDIR)/io
+	$(CXX) $(CXXFLAGS) -c $< -o $@
 
 .PHONY:
 clean:
