aboutsummaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile64
1 files changed, 64 insertions, 0 deletions
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..bf15054
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,64 @@
+compiler = gcc
+tool_compiler = gcc
+linker = gcc
+cflags = -I./ -g -DDEBUG -Dplat_x11 -Dplat_x86 \
+-Dplat_posix -Dallocation_default_alignment=8 \
+-Wall -Wextra -pedantic -std=c90
+lflags = -lX11 -lXi
+target = 1bitjam
+int_dir = intermediate
+data_dir = data
+convimg = convimg
+packassets = packassets
+pack = pack.h
+
+sources = \
+ 1bitjam.c \
+ asset.c \
+ maths.c \
+ memory.c \
+ plat.c \
+ rect.c \
+ render.c \
+
+image_sources = \
+ $(int_dir)/guy.bmp \
+ $(int_dir)/hello.bmp
+
+objects = $(sources:%.c=%.o)
+images = $(image_sources:$(int_dir)/%.bmp=$(data_dir)/%.img)
+
+all: $(target) $(pack)
+
+$(objects): %.o : %.c | $(pack)
+ $(compiler) -MMD -MF $(basename $@).d $(cflags) -o $@ -c $<
+
+$(images): $(data_dir)/%.img : $(int_dir)/%.bmp | $(convimg) $(data_dir)
+ ./$(convimg) $< $@
+
+$(pack): $(packassets) $(images)
+ ./$(packassets) \
+ $(pack) \
+ $(data_dir) \
+ $(notdir $(images))
+
+$(convimg): convimg.c
+ $(tool_compiler) convimg.c $(cflags) -o $@
+
+$(packassets): packassets.c
+ $(tool_compiler) packassets.c $(cflags) -o $@
+
+$(target): $(objects)
+ $(linker) $(objects) -o $@ $(lflags)
+
+$(data_dir):
+ mkdir -p $(data_dir)
+
+clean:
+ rm *.d
+ rm *.o
+ rm $(pack)
+ rm -r $(data_dir)
+ rm $(target)
+
+-include $(sources:%.c=%.d)