From f953c730af2b90db99f709258c5d5e50fdcaadf7 Mon Sep 17 00:00:00 2001 From: BossCode45 Date: Fri, 27 Jun 2025 14:54:46 +1200 Subject: Initial commit Bringing a lot of stuff over from my maze-reader project in an attempt to split the image reading code off into a library. --- makefile | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 makefile (limited to 'makefile') diff --git a/makefile b/makefile new file mode 100644 index 0000000..dabc3ed --- /dev/null +++ b/makefile @@ -0,0 +1,58 @@ +# Source +OBJS_DIR := ./build +SOURCE_DIR := ./src +LIB_DIR := ./lib +INCLUDE_DIR := ./include +TEST_SRC_DIR := ./test + +# Flags +CXX := g++ +CXXFLAGS := -fsanitize=address -g +LINKFLAGS := -static-libasan +TEST_CXXFLAGS := -I$(INCLUDE_DIR) -fsanitize=address -g +TEST_LINKFLAGS := -L$(LIB_DIR) -ltehimage -static-libasan + +# Outputs +LIB := $(LIB_DIR)/libtehimage.so +TEST := image_test + +# Files +SOURCE_FILES := $(wildcard $(SOURCE_DIR)/*.cpp) +SOURCE_HEADERS := $(wildcard $(SOURCE_DIR)/*.h) +OBJS := $(subst $(SOURCE_DIR),$(OBJS_DIR), $(patsubst %.cpp,%.o,$(SOURCE_FILES))) +INCLUDE_HEADERS := $(subst $(SOURCE_DIR),$(INCLUDE_DIR), $(SOURCE_HEADERS)) +TEST_SOURCE := $(wildcard $(TEST_SRC_DIR)/*.cpp) +TEST_HEADERS := $(wildcard $(TEST_SRC_DIR)/*.h) +TEST_OBJS = $(subst $(TEST_SRC_DIR),$(OBJS_DIR), $(patsubst %.cpp,%.o,$(TEST_SOURCE))) + +# Main lib +$(LIB): $(INCLUDE_HEADERS) $(OBJS) + $(CXX) $(OBJS) $(CXXFLAGS) $(LINKFLAGS) -shared -o $(LIB) + +$(OBJS_DIR)/%.o: $(SOURCE_DIR)/%.cpp + $(CXX) $(CXXFLAGS) -c $< -o $@ + +$(INCLUDE_DIR)/%.h: $(SOURCE_DIR)/%.hls lib + cp $< $@ + +# Test binary +$(TEST): $(TEST_OBJS) $(LIB) + $(CXX) $(TEST_OBJS) $(TEST_CXXFLAGS) $(TEST_LINKFLAGS) -o $(TEST) + +$(OBJS_DIR)/%.o: $(TEST_SRC_DIR)/%.cpp $(TEST_SOURCE) $(TEST_HEADERS) + $(CXX) $(TEST_CXXFLAGS) -c $< -o $@ + + +# Phony +.PHONY: clean test +clean: + rm -f $(LIB) + rm -f $(OBJS_DIR)/*.o + rm -f $(TEST) + +test: $(TEST) + +$(OBJS_DIR)/reader.o: $(SOURCE_DIR)/reader.cpp $(SOURCE_DIR)/reader.h $(SOURCE_DIR)/debug.h +$(OBJS_DIR)/image.o: $(SOURCE_DIR)/image.cpp $(SOURCE_DIR)/image.h +$(OBJS_DIR)/PNGImage.o: $(SOURCE_DIR)/PNGImage.cpp $(SOURCE_DIR)/PNGImage.h $(SOURCE_DIR)/debug.h $(SOURCE_DIR)/image.h $(SOURCE_DIR)/puff.h +$(OBJS_DIR)/zlib.o: $(SOURCE_DIR)/zlib.cpp $(SOURCE_DIR)/zlib.h -- cgit v1.2.3