summaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile56
1 files changed, 56 insertions, 0 deletions
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..8788ff7
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,56 @@
+CCXX := g++
+CC := gcc
+LD := gcc
+SDL2-CFG := sdl2-config
+SRC := $(wildcard *.c) $(wildcard *.cpp)
+OBJ := $(patsubst %.c,%.o,$(patsubst %.cpp,%.o,$(SRC)))
+WINOBJ := $(patsubst %.c,%.win.o,$(patsubst %.cpp,%.win.o,$(SRC)))
+DEP := $(patsubst %.c,%.d,$(patsubst %.cpp,%.d,$(SRC)))
+NAME := 004
+ifeq ($(TARGET),windows)
+ SDL2-CFG := /usr/x86_64-w64-mingw32/bin/sdl2-config
+ CCXX := x86_64-w64-mingw32-$(CCXX)
+ CC := x86_64-w64-mingw32-$(CC)
+ LD := x86_64-w64-mingw32-$(LD)
+ NAME := $(NAME).exe
+ OBJ := $(WINOBJ)
+endif
+LZR_FLAGS := -DLZR_DISABLE_IMAGE -DLZR_DISABLE_GFX -DLZR_DISABLE_MIXER \
+ -DLZR_DISABLE_DEVMODE
+CFLAGS := -Wall -Wextra -std=c99 -pedantic -MMD \
+ -D_POSIX_C_SOURCE=200809L $(LZR_FLAGS) $(shell $(SDL2-CFG) --cflags)
+CXXFLAGS := -Wall -Wextra -std=c++03 -pedantic -MMD \
+ -nostdlib -fno-rtti -fno-exceptions \
+ $(LZR_FLAGS) $(shell $(SDL2-CFG) --cflags)
+LDFLAGS := -lm $(shell $(SDL2-CFG) --libs) -lSDL2_mixer
+
+all: $(NAME)
+
+$(NAME): $(OBJ)
+ $(LD) -o $(NAME) $(OBJ) $(LDFLAGS)
+
+%.o: %.cpp
+ $(CCXX) $(CXXFLAGS) -c -o $@ $<
+
+%.win.o: %.cpp
+ $(CCXX) $(CXXFLAGS) -c -o $@ $<
+
+%.o: %.c
+ $(CC) $(CFLAGS) -c -o $@ $<
+
+%.win.o: %.c
+ $(CC) $(CFLAGS) -c -o $@ $<
+
+clean:
+ rm -rf $(NAME) $(OBJ) $(WINOBJ) $(DEP)
+
+run: $(NAME)
+ ./$(NAME)
+
+re:
+ make clean
+ make
+
+.PHONY: all clean run re
+
+-include $(DEP)