diff Makefile.gen @ 0:32250b436bca

Initial re-import.
author Matti Hamalainen <ccr@tnsp.org>
date Fri, 28 Sep 2012 01:54:23 +0300
parents
children 6e169d87d963
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Makefile.gen	Fri Sep 28 01:54:23 2012 +0300
@@ -0,0 +1,261 @@
+###
+### Get settings from config.mak
+###
+include config.mak
+
+ifeq ($(EXTRA_CFLAGS),)
+EXTRA_CFLAGS=-march=core2
+endif
+
+
+###
+### Form additional compilation defines based on settings
+###
+
+# If C routines are not explicitly disabled, we enable them
+ifeq ($(DM_USE_C),)
+DM_USE_C=yes
+endif
+
+ifeq ($(DM_USE_C),yes)
+DM_CFLAGS+=-DDM_USE_C
+endif
+
+# Enable SIMD routines, if requested
+ifeq ($(DM_USE_SIMD),yes)
+DM_CFLAGS+=-DDM_USE_SIMD
+endif
+
+
+###
+### Filesystem
+###
+ifeq ($(DMRES_PACKFS),yes)
+DM_CFLAGS += -DDMRES_PACKFS
+DMLIB_OBJS += dmpack.o dmpackutil.o
+DM_LDFLAGS += -lz
+BINARIES += packed
+endif
+
+ifeq ($(DMRES_STDIO),yes)
+DM_CFLAGS += -DDMRES_STDIO
+endif
+
+
+###
+### Graphics support
+###
+
+ifeq ($(DM_GFX_MISC),yes)
+DM_CFLAGS += -DDM_GFX_MISC
+DMLIB_OBJS += dmgfx.o
+endif
+
+ifeq ($(DM_GFX_LINES),yes)
+DM_CFLAGS += -DDM_GFX_LINES
+DMLIB_OBJS += dmline.o
+endif
+
+ifeq ($(DM_GFX_BLITS),yes)
+DM_CFLAGS += -DDM_GFX_BLITS
+DMLIB_OBJS += dmblit.o
+endif
+
+ifeq ($(DM_GFX_TTF_TEXT),yes)
+DM_CFLAGS += -DDM_GFX_TTF_TEXT
+DMLIB_OBJS += dmtext.o
+
+ifeq ($(DM_GFX_BLITS),yes)
+BINARIES += blittest vview vptest efu
+endif
+endif
+
+ifeq ($(DM_GFX_8BIT),yes)
+DM_CFLAGS += -DDM_GFX_8BIT
+endif
+
+ifeq ($(DM_GFX_15BIT),yes)
+DM_CFLAGS += -DDM_GFX_15BIT
+endif
+
+ifeq ($(DM_GFX_16BIT),yes)
+DM_CFLAGS += -DDM_GFX_15BIT
+endif
+
+ifeq ($(DM_GFX_32BIT),yes)
+DM_CFLAGS += -DDM_GFX_15BIT
+endif
+
+
+###
+### miniJSS
+###
+ifeq ($(JSS),yes)
+
+ifeq ($(JSS_LIGHT),yes)
+DM_CFLAGS+=-DJSS_LIGHT -Os
+else
+ifeq ($(JSS_USE_ASSERTS),yes)
+DM_CFLAGS+=-DJSS_USE_ASSERTS
+endif
+ifeq ($(JSS_DEBUG),yes)
+DM_CFLAGS+=-DJSS_DEBUG
+endif
+endif
+
+ifeq ($(JSS_SUP_THREADS),yes)
+DM_CFLAGS+=-DJSS_SUP_THREADS
+endif
+
+DMLIB_OBJS += jss.o jssmix.o jssmod.o jssplr.o
+
+SUP_MODLOAD=no
+ifeq ($(JSS_SUP_XM),yes)
+SUP_MODLOAD=yes
+DMLIB_OBJS+= jloadxm.o 
+DM_CFLAGS+=-DJSS_SUP_XM
+endif
+
+ifeq ($(JSS_SUP_JSSMOD),yes)
+SUP_MODLOAD=yes
+DMLIB_OBJS+= jloadjss.o
+DM_CFLAGS+=-DJSS_SUP_JSSMOD $(JSSMOD_FLAGS)
+endif
+
+ifeq ($(DM_USE_C),yes)
+DMLIB_OBJS+=jmix_c.o
+endif
+
+#ifeq ($(DM_USE_SIMD),yes)
+#DMLIB_OBJS+=jmix_simd.o
+#endif
+
+
+### Dependancies
+ifeq ($(SUP_MODLOAD),yes)
+BINARIES+= viewmod mod2wav testpl
+endif
+
+
+ifeq ($(JSS_SUP_JSSMOD),yes)
+ifeq ($(JSS_SUP_XM),yes)
+BINARIES+= xm2jss
+endif
+endif
+
+endif
+
+###
+### Rest of the rules
+###
+CFLAGS += -g -W -Wall -DHAVE_STRING_H -O3 $(EXTRA_CFLAGS)
+CXXFLAGS=$(CFLAGS)
+
+DM_CFLAGS += $(SDL_CFLAGS)
+DM_LDFLAGS += $(LDFLAGS) $(SDL_LDFLAGS)
+
+
+DMLIB_A=$(OBJPATH)dmlib.a
+DMLIB_OBJS += dmfile.o dmlib.o dmlerp.o dmstring.o \
+	dmargs.o dmvecmat.o dmperlin.o dmimage.o dmres.o
+
+BINARIES += vecmattest fptest
+
+TARGETS=$(DMLIB_A) $(addprefix $(BINPATH),$(addsuffix $(EXEEXT),$(BINARIES)))
+
+all: $(TARGETS)
+
+###
+### Generic rules
+###
+
+$(OBJPATH)%.o: %.c %.h
+	@echo " CC $<"
+	@$(CC) $(CFLAGS) -c -o $@ $< $(DM_CFLAGS)
+
+$(OBJPATH)%.o: %.c
+	@echo " CC $<"
+	@$(CC) $(CFLAGS) -c -o $@ $< $(DM_CFLAGS)
+
+
+###
+### dmlib rules
+###
+
+jmix_c.c: jmix_c.in.c jmix_c.h jmix_post.h
+	(echo "#include \"jssmix.h\"" && cpp $<) | sed "s/^# .*//g" > $@
+
+
+$(OBJPATH)dmimage.o: dmimage.c stb_image.c
+	@echo " CC $+"
+	@$(CC) $(CFLAGS) -c -o $@ $< $(DM_CFLAGS)
+
+$(OBJPATH)dmblit.o: dmblit.c dmscaledblit.h dmblitfunc.h
+	@echo " CC $+"
+	@$(CC) $(CFLAGS) -c -o $@ $< $(DM_CFLAGS)
+
+$(OBJPATH)dmline.o: dmline.c dmdrawline.h dmlinefunc.h
+	@echo " CC $+"
+	@$(CC) $(CFLAGS) -c -o $@ $< $(DM_CFLAGS)
+
+$(OBJPATH)dmargs.o: dmargs.c dmargs.h dmargs_int.c
+	@echo " CC $+"
+	@$(CC) $(CFLAGS) -c -o $@ $< $(DM_CFLAGS)
+
+
+$(DMLIB_A): $(addprefix $(OBJPATH),$(DMLIB_OBJS)) Makefile.gen config.mak
+	@echo " AR $@ $(addprefix $(OBJPATH),$(DMLIB_OBJS))"
+	@$(AR) cru $@ $+ $(addprefix $(OBJPATH),$(DMLIB_OBJS))
+	@$(RANLIB) $@
+
+
+###
+### Tests and binaries
+###
+$(BINPATH)vview$(EXEEXT): $(OBJPATH)vview.o $(DMLIB_A)
+	@echo " LINK $+"
+	@$(CC) -o $@ $+ $(DM_LDFLAGS) -lSDL_ttf
+
+$(BINPATH)blittest$(EXEEXT): $(OBJPATH)blittest.o $(DMLIB_A)
+	@echo " LINK $+"
+	@$(CC) -o $@ $+ $(DM_LDFLAGS) -lSDL_ttf
+
+$(BINPATH)efu$(EXEEXT): $(OBJPATH)efu.o $(DMLIB_A)
+	@echo " LINK $+"
+	@$(CC) -o $@ $+ $(DM_LDFLAGS) -lSDL_ttf -lSDL_image
+
+$(BINPATH)vptest$(EXEEXT): $(OBJPATH)vptest.o $(DMLIB_A)
+	@echo " LINK $+"
+	@$(CC) -o $@ $+ $(DM_LDFLAGS) -lSDL_ttf
+
+$(BINPATH)%test$(EXEEXT): $(OBJPATH)%test.o $(DMLIB_A)
+	@echo " LINK $+"
+	@$(CC) -o $@ $+ $(DM_LDFLAGS)
+
+$(BINPATH)packed$(EXEEXT): $(OBJPATH)packed.o $(DMLIB_A)
+	@echo " LINK $+"
+	@$(CC) -o $@ $+ $(DM_LDFLAGS)
+
+$(BINPATH)mod2wav$(EXEEXT): $(OBJPATH)mod2wav.o $(DMLIB_A)
+	@echo " LINK $+"
+	@$(CC) -o $@ $+ $(DM_LDFLAGS)
+
+$(BINPATH)xm2jss$(EXEEXT): $(OBJPATH)xm2jss.o $(DMLIB_A)
+	@echo " LINK $+"
+	@$(CC) -o $@ $+ $(DM_LDFLAGS)
+
+$(BINPATH)viewmod$(EXEEXT): $(OBJPATH)viewmod.o $(DMLIB_A)
+	@echo " LINK $+"
+	@$(CC) -o $@ $+ $(DM_LDFLAGS)
+
+$(BINPATH)testpl$(EXEEXT): $(OBJPATH)testpl.o $(DMLIB_A)
+	@echo " LINK $+"
+	@$(CC) -o $@ $+ $(DM_LDFLAGS)
+
+
+###
+### Special targets
+###
+clean:
+	$(RM) $(TARGETS) $(OBJPATH)*.o
+