Mercurial > hg > dmlib
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 +