Mercurial > hg > dmlib
view Makefile.gen @ 1252:f077a709d491
Cleanup.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Sat, 07 Mar 2015 19:53:13 +0200 |
parents | 0f07f752cd73 |
children | acae5f8ebc67 |
line wrap: on
line source
### ### Get settings from config.mak ### ifneq ($(DMCONFIG),) include $(DMCONFIG) else include config.mak endif MKDIR ?= mkdir MKDIR_P ?= $(MKDIR) -p BINPATH ?= ./ DMLIB ?= ./ TOOL_BINPATH ?= $(DMLIB)tools/ TESTS_BINPATH ?= $(DMLIB)tests/ DMLIBSRC = $(DMLIB)src/ DM_CFLAGS += -I$(DMLIBSRC) ifeq ($(EXTRA_CFLAGS),) EXTRA_CFLAGS=-O3 -march=corei7 endif ### ### Extra debug messages etc? ### ifeq ($(DM_DEBUG),yes) DM_CFLAGS += -DDM_DEBUG # Disable JSS_LIGHT JSS_LIGHT=no endif ### ### Build demo target? ### ifneq ($(DEMO_BIN),) BINARIES += $(DEMO_BIN) endif ifeq ($(DM_BUILT_IN_SETUP),yes) DM_CFLAGS += -DDM_BUILT_IN_SETUP endif ### ### Editor ### ifeq ($(DM_USE_TIMELINE),yes) DM_CFLAGS+=-DDM_USE_TIMELINE DMLIB_OBJS += dmtimeline.o dmtimelinew.o ifeq ($(DM_BUILD_EDITOR),yes) ifneq ($(DEMO_BIN),) BINARIES += ed_$(DEMO_BIN) TARGETS += $(EDITOR_MAKEFILE) $(EDITOR_PRO) TMPFILES += $(OBJPATH)moc_* endif endif endif EDITOR_PRO = editor.pro EDITOR_MAKEFILE = Makefile.editor EDITOR_SOURCES = editor/edmain.cpp editor/edgui.cpp editor/edview.cpp \ editor/edtlobj.cpp editor/edtimeline.cpp editor/edwaveform.cpp \ editor/edres.cpp EDITOR_HEADERS = editor/edmain.h editor/edtlobj.h editor/edview.h \ editor/edtimeline.h editor/edwaveform.h editor/edres.h ### ### Form additional compilation defines based on settings ### # Enable SIMD routines, if requested ifeq ($(DM_USE_SIMD),yes) DM_CFLAGS+=-DDM_USE_SIMD -msse2 endif # Enable Tremor Ogg Vorbis decoder ifeq ($(DM_USE_TREMOR),yes) DM_CFLAGS+=-DDM_USE_TREMOR $(TREMOR_CFLAGS) DEMO_LDFLAGS+=$(TREMOR_LDFLAGS) endif ### ### Filesystem ### ifeq ($(DM_USE_PACKFS),yes) BUILD_RES=yes DM_CFLAGS += -DDM_USE_PACKFS DMLIB_OBJS += dmpack.o ifeq ($(DM_BUILD_TOOLS),yes) TOOL_BINARIES += packed endif endif ifeq ($(DM_USE_STDIO),yes) BUILD_RES=yes DM_CFLAGS += -DDM_USE_STDIO endif ifeq ($(DM_USE_MEMIO),yes) BUILD_RES=yes DM_CFLAGS += -DDM_USE_MEMIO endif ifeq ($(BUILD_RES),yes) DMLIB_OBJS += dmres.o dmresw.o 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_BM_TEXT),yes) DM_CFLAGS += -DDM_GFX_BM_TEXT DMLIB_OBJS += dmtext_bm.o ifeq ($(DM_BUILD_TOOLS),yes) ifeq ($(DM_USE_STDIO),yes) TOOL_BINARIES += fontconv endif endif endif ifeq ($(DM_GFX_TTF_TEXT),yes) DM_CFLAGS += -DDM_GFX_TTF_TEXT DMLIB_OBJS += dmtext_ttf.o ifeq ($(DM_BUILD_TOOLS),yes) ifeq ($(DM_GFX_BLITS),yes) TOOL_BINARIES += auval endif endif ifeq ($(DM_BUILD_TESTS),yes) ifeq ($(DM_GFX_BLITS),yes) ifeq ($(DM_USE_STDIO),yes) TESTS_BINARIES += blittest efu endif endif 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 ### MINIJSS=$(DMLIB)/minijss/ ifeq ($(JSS),yes) DM_CFLAGS+=-DDM_USE_JSS -I$(MINIJSS) 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_MIX_FP),yes) DM_CFLAGS+=-DJSS_MIX_FP endif ifeq ($(JSS_SUP_THREADS),yes) DM_CFLAGS+=-DJSS_SUP_THREADS endif 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) DM_CFLAGS+=-DDM_USE_C TARGETS += $(MINIJSS)jmix_c.c DMLIB_OBJS+=jmix_c.o endif #ifeq ($(DM_USE_SIMD),yes) #DMLIB_OBJS+=jmix_simd.o #endif ifeq ($(DM_BUILD_TOOLS),yes) ifeq ($(DM_USE_STDIO),yes) ifeq ($(JSS_SUP_JSSMOD),yes) ifeq ($(JSS_SUP_XM),yes) TOOL_BINARIES+= xm2jss endif endif endif endif DMLIB_OBJS += jss.o jssmix.o jssmod.o jssplr.o endif ### Dependancies ifeq ($(DM_BUILD_TOOLS),yes) DMLIB_OBJS += libgfx.o ifeq ($(DM_USE_STDIO),yes) TOOL_BINARIES+= objlink data2inc gfxconv gentab ifeq ($(SUP_MODLOAD),yes) TOOL_BINARIES+= dumpmod mod2wav TESTS_BINARIES+= plrtest ifeq ($(DM_GFX_BLITS),yes) TOOL_BINARIES+= view64 ifeq ($(DM_GFX_BM_TEXT),yes) ifeq ($(DM_GFX_MISC),yes) TOOL_BINARIES+= ppl endif endif endif endif endif endif ### libPNG handling ifeq ($(DM_USE_LIBPNG),yes) DM_CFLAGS += -DDM_USE_LIBPNG $(LIBPNG_CFLAGS) endif ### Check requirements for zlib ifeq ($(DM_USE_ZLIB),yes) DM_CFLAGS += -DDM_USE_ZLIB $(ZLIB_CFLAGS) DEMO_LDFLAGS += $(ZLIB_LDFLAGS) else DEMO_LDFLAGS += endif DM_ZLIB_LDFLAGS = $(ZLIB_LDFLAGS) ### What tests to build? ifeq ($(DM_BUILD_TESTS),yes) TESTS_BINARIES += vecmattest fptest evaltest dzlib endif FONTCONV_BIN=fontconv DATA2INC_BIN=data2inc ### ### Rest of the rules ### CFLAGS += -g -W -Wall -DHAVE_STRING_H $(EXTRA_CFLAGS) CXXFLAGS=$(CFLAGS) DM_CFLAGS += $(SDL_CFLAGS) DM_LDFLAGS += $(LDFLAGS) DMLIB_A=$(OBJPATH)dmlib.a DMLIB_OBJS += \ dmfile.o dmbstr.o dmlib.o dmcurves.o dmstring.o \ dmargs.o dmvecmat.o dmperlin.o dmimage.o \ dmwav.o dmengine.o dmfft.o dmzlib.o TESTS_TARGETS = $(addprefix $(TESTS_BINPATH),$(addsuffix $(EXEEXT),$(TESTS_BINARIES))) TOOL_TARGETS = $(addprefix $(TOOL_BINPATH),$(addsuffix $(EXEEXT),$(TOOL_BINARIES))) TARGETS += $(DMLIB_A) $(addprefix $(BINPATH),$(addsuffix $(EXEEXT),$(BINARIES))) \ $(TOOL_TARGETS) $(TESTS_TARGETS) NONBUILD += $(OBJPATH) $(BINPATH) all: $(NONBUILD) $(TARGETS) ### ### Generic rules ### $(OBJPATH): $(MKDIR_P) $@ $(BINPATH): $(MKDIR_P) $@ $(OBJPATH)%.o: $(MINIJSS)%.c $(MINIJSS)%.h @echo " CC $<" @$(CC) $(CFLAGS) -c -o $@ $< $(DM_CFLAGS) $(OBJPATH)%.o: $(MINIJSS)%.c @echo " CC $<" @$(CC) $(CFLAGS) -c -o $@ $< $(DM_CFLAGS) $(OBJPATH)%.o: $(DMLIB)tests/%.c $(DMLIB)tests/%.h @echo " CC $<" @$(CC) $(CFLAGS) -c -o $@ $< $(DM_CFLAGS) $(OBJPATH)%.o: $(DMLIB)tests/%.c @echo " CC $<" @$(CC) $(CFLAGS) -c -o $@ $< $(DM_CFLAGS) $(OBJPATH)%.o: $(DMLIB)tools/%.c $(DMLIB)tools/%.h @echo " CC $<" @$(CC) $(CFLAGS) -c -o $@ $< $(DM_CFLAGS) $(OBJPATH)%.o: $(DMLIB)tools/%.c @echo " CC $<" @$(CC) $(CFLAGS) -c -o $@ $< $(DM_CFLAGS) $(OBJPATH)%.o: $(DMLIBSRC)%.c $(DMLIBSRC)%.h @echo " CC $<" @$(CC) $(CFLAGS) -c -o $@ $< $(DM_CFLAGS) $(OBJPATH)%.o: $(DMLIBSRC)%.c @echo " CC $<" @$(CC) $(CFLAGS) -c -o $@ $< $(DM_CFLAGS) $(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 ### $(MINIJSS)jmix_c.c: $(MINIJSS)jmix_c_in.c $(MINIJSS)jmixtmpl_c.h $(MINIJSS)jmix_post_c.h (echo "#include \"jssmix.h\"" && cpp $< $(DM_CFLAGS)) | sed "s/^# .*//g" > $@ $(OBJPATH)dmimage.o: $(DMLIBSRC)dmimage.c $(DMLIBSRC)stb_image.c $(DMLIBSRC)dmimage.h @echo " CC $+" @$(CC) $(CFLAGS) -c -o $@ $< $(DM_CFLAGS) $(OBJPATH)jssmod.o: $(MINIJSS)jssmod.c $(MINIJSS)jssmod.h $(MINIJSS)jss.h @echo " CC $+" @$(CC) $(CFLAGS) -c -o $@ $< $(DM_CFLAGS) $(OBJPATH)jssplr.o: $(MINIJSS)jssplr.c $(MINIJSS)jssplr.h $(MINIJSS)jss.h $(MINIJSS)jssmod.h $(MINIJSS)jssmix.h @echo " CC $+" @$(CC) $(CFLAGS) -c -o $@ $< $(DM_CFLAGS) $(OBJPATH)jssmix.o: $(MINIJSS)jssmix.c $(MINIJSS)jssmix.h $(MINIJSS)jss.h @echo " CC $+" @$(CC) $(CFLAGS) -c -o $@ $< $(DM_CFLAGS) $(OBJPATH)dmblit.o: $(DMLIBSRC)dmblit.c $(DMLIBSRC)dmscaledblit.h $(DMLIBSRC)dmunscaledblit.h $(DMLIBSRC)dmblitfunc.h $(DMLIBSRC)dmlib.h @echo " CC $+" @$(CC) $(CFLAGS) -c -o $@ $< $(DM_CFLAGS) $(OBJPATH)dmline.o: $(DMLIBSRC)dmline.c $(DMLIBSRC)dmdrawline.h $(DMLIBSRC)dmlinefunc.h $(DMLIBSRC)dmlineclip.h $(DMLIBSRC)dmlib.h @echo " CC $+" @$(CC) $(CFLAGS) -c -o $@ $< $(DM_CFLAGS) $(OBJPATH)dmargs.o: $(DMLIBSRC)dmargs.c $(DMLIBSRC)dmargs.h $(DMLIBSRC)dmargs_int.c $(DMLIBSRC)dmlib.h @echo " CC $+" @$(CC) $(CFLAGS) -c -o $@ $< $(DM_CFLAGS) $(OBJPATH)libgfx.o: $(DMLIBSRC)libgfx.c $(DMLIBSRC)libgfx.h @echo " CC $+" @$(CC) $(CFLAGS) -c -o $@ $< $(DM_CFLAGS) $(LIBPNG_CFLAGS) $(DMLIB)assets/SetupFont.dmf: $(DMLIB)assets/SetupFont.fnt $(FONTCONV_BIN) -o $@ $< $(DMLIBSRC)setupfont.h: $(DMLIB)assets/SetupFont.dmf $(DATA2INC_BIN) -q -C -n engineSetupFont -t Uint8 $< $@ $(DMLIBSRC)setupimage.h: $(DMLIB)assets/SetupImage.png $(DATA2INC_BIN) -q -C -n engineSetupImage -t Uint8 $< $@ $(DMLIBSRC)setupmenubar.h: $(DMLIB)assets/SetupMenuBar.png $(DATA2INC_BIN) -q -C -n engineSetupMenuBar -t Uint8 $< $@ $(OBJPATH)dmsimple.o: $(DMLIBSRC)dmsimple.c $(DMLIBSRC)dmengine.h \ $(DMLIBSRC)setupmenubar.h $(DMLIBSRC)setupfont.h \ $(DMLIBSRC)setupimage.h $(DMLIBSRC)dmsimple.c @echo " CC $+" @$(CC) $(CFLAGS) -c -o $@ $< $(DM_CFLAGS) $(DMLIB_A): $(addprefix $(OBJPATH),$(DMLIB_OBJS)) $(DMLIB)Makefile.gen config.mak @echo " AR $@ $(addprefix $(OBJPATH),$(DMLIB_OBJS))" @$(AR) cru $@ $(addprefix $(OBJPATH),$(DMLIB_OBJS)) @$(RANLIB) $@ ### ### Tests ### $(TESTS_BINPATH)blittest$(EXEEXT): $(OBJPATH)blittest.o $(DMLIB_A) @echo " LINK $+" @$(CC) -o $@ $(filter %.o %.a,$+) $(DM_LDFLAGS) $(SDL_LDFLAGS) $(SDL_TTF_LDFLAGS) -lm $(TESTS_BINPATH)efu$(EXEEXT): $(OBJPATH)efu.o $(DMLIB_A) @echo " LINK $+" @$(CC) -o $@ $(filter %.o %.a,$+) $(DM_LDFLAGS) $(SDL_LDFLAGS) $(SDL_TTF_LDFLAGS) $(DM_ZLIB_LDFLAGS) -lm $(TESTS_BINPATH)vptest$(EXEEXT): $(OBJPATH)vptest.o $(DMLIB_A) @echo " LINK $+" @$(CC) -o $@ $(filter %.o %.a,$+) $(DM_LDFLAGS) $(SDL_LDFLAGS) $(SDL_TTF_LDFLAGS) -lm $(TESTS_BINPATH)evaltest$(EXEEXT): $(OBJPATH)evaltest.o $(OBJPATH)dmeval.o $(OBJPATH)dmevalw.o $(DMLIB_A) @echo " LINK $+" @$(CC) -o $@ $(filter %.o %.a,$+) $(DM_LDFLAGS) $(TOOL_LDFLAGS) -lm $(TESTS_BINPATH)%test$(EXEEXT): $(OBJPATH)%test.o $(DMLIB_A) @echo " LINK $+" @$(CC) -o $@ $(filter %.o %.a,$+) $(DM_LDFLAGS) $(TOOL_LDFLAGS) -lm $(TESTS_BINPATH)plrtest$(EXEEXT): $(OBJPATH)plrtest.o $(DMLIB_A) @echo " LINK $+" @$(CC) -o $@ $(filter %.o %.a,$+) $(DM_LDFLAGS) $(SDL_LDFLAGS) $(DM_ZLIB_LDFLAGS) -lm $(TESTS_BINPATH)dzlib$(EXEEXT): $(OBJPATH)dzlib.o $(DMLIB_A) @echo " LINK $+" @$(CC) -o $@ $(filter %.o %.a,$+) $(DM_LDFLAGS) $(SDL_LDFLAGS) $(DM_ZLIB_LDFLAGS) ### ### Tools ### $(TOOL_BINPATH)fontconv$(EXEEXT): $(OBJPATH)fontconv.o $(DMLIB_A) @echo " LINK $+" @$(CC) -o $@ $(filter %.o %.a,$+) $(DM_LDFLAGS) $(TOOL_LDFLAGS) $(SDL_TTF_LDFLAGS) $(DM_ZLIB_LDFLAGS) -lm $(TOOL_BINPATH)data2inc$(EXEEXT): $(OBJPATH)data2inc.o $(DMLIB_A) @echo " LINK $+" @$(CC) -o $@ $(filter %.o %.a,$+) $(DM_LDFLAGS) $(TOOL_LDFLAGS) $(TOOL_BINPATH)packed$(EXEEXT): $(OBJPATH)packed.o $(DMLIB_A) @echo " LINK $+" @$(CC) -o $@ $(filter %.o %.a,$+) $(DM_LDFLAGS) $(TOOL_LDFLAGS) $(DM_ZLIB_LDFLAGS) $(TOOL_BINPATH)mod2wav$(EXEEXT): $(OBJPATH)mod2wav.o $(DMLIB_A) @echo " LINK $+" @$(CC) -o $@ $(filter %.o %.a,$+) $(DM_LDFLAGS) $(TOOL_LDFLAGS) $(DM_ZLIB_LDFLAGS) -lm $(TOOL_BINPATH)xm2jss$(EXEEXT): $(OBJPATH)xm2jss.o $(DMLIB_A) @echo " LINK $+" @$(CC) -o $@ $(filter %.o %.a,$+) $(DM_LDFLAGS) $(TOOL_LDFLAGS) $(DM_ZLIB_LDFLAGS) $(TOOL_BINPATH)dumpmod$(EXEEXT): $(OBJPATH)dumpmod.o $(DMLIB_A) @echo " LINK $+" @$(CC) -o $@ $(filter %.o %.a,$+) $(DM_LDFLAGS) $(TOOL_LDFLAGS) $(DM_ZLIB_LDFLAGS) $(TOOL_BINPATH)ppl$(EXEEXT): $(DMLIBSRC)setupfont.h $(OBJPATH)ppl.o $(DMLIB_A) @echo " LINK $+" @$(CC) -o $@ $(filter %.o %.a,$+) $(DM_LDFLAGS) $(DM_ZLIB_LDFLAGS) $(SDL_LDFLAGS) -lm $(TOOL_BINPATH)objlink$(EXEEXT): $(OBJPATH)objlink.o $(DMLIB_A) @echo " LINK $+" @$(CC) -o $@ $(filter %.o %.a,$+) $(DM_LDFLAGS) $(TOOL_LDFLAGS) $(TOOL_BINPATH)gfxconv$(EXEEXT): $(OBJPATH)gfxconv.o $(OBJPATH)lib64gfx.o $(DMLIB_A) @echo " LINK $+" @$(CC) -o $@ $(filter %.o %.a,$+) $(DM_LDFLAGS) $(TOOL_LDFLAGS) $(LIBPNG_LDFLAGS) $(DM_ZLIB_LDFLAGS) $(TOOL_BINPATH)view64$(EXEEXT): $(OBJPATH)view64.o $(OBJPATH)lib64gfx.o $(DMLIB_A) @echo " LINK $+" @$(CC) -o $@ $(filter %.o %.a,$+) $(DM_LDFLAGS) $(LIBPNG_LDFLAGS) $(DM_ZLIB_LDFLAGS) $(SDL_LDFLAGS) $(TOOL_BINPATH)gentab$(EXEEXT): $(OBJPATH)gentab.o $(DMLIB_A) @echo " LINK $+" @$(CC) -o $@ $(filter %.o %.a,$+) $(DM_LDFLAGS) $(TOOL_LDFLAGS) -lm $(TOOL_BINPATH)auval$(EXEEXT): $(OBJPATH)auval.o $(OBJPATH)dmeval.o $(OBJPATH)dmevalw.o $(DMLIB_A) @echo " LINK $+" @$(CC) -o $@ $(filter %.o %.a,$+) $(DM_LDFLAGS) $(SDL_LDFLAGS) $(SDL_TTF_LDFLAGS) -lm ### ### Demo binary ### ifneq ($(DEMO_BIN),) $(BINPATH)$(DEMO_BIN)$(EXEEXT): $(addprefix $(OBJPATH),$(DEMO_OBJS)) $(DMLIB_A) @echo " LINK $+" @$(CC) -o $@ $(filter %.o %.a,$+) $(DM_LDFLAGS) $(SDL_LDFLAGS) $(DEMO_LDFLAGS) -lm endif ### ### Editor targets ### $(EDITOR_PRO): $(DMLIB)Makefile.gen config.mak $(addprefix $(DMLIB),$(EDITOR_SOURCES) $(EDITOR_HEADERS)) $(addprefix $(OBJPATH),$(DEMO_OBJS)) $(DMLIB_A) @echo " CREATE $@" @echo "OBJECTS_DIR = $(OBJPATH)" > $@ @echo "MOC_DIR = $(OBJPATH)" >> $@ @echo "QMAKE_CXXFLAGS += $(DM_CFLAGS) $(SDL_CFLAGS)" >> $@ @echo "QMAKE_LIBS += $(filter-out %dmsimple.o,$(filter %.o %.a,$+))" >> $@ @echo "QMAKE_LIBS += $(DM_LDFLAGS) $(SDL_LDFLAGS) $(DEMO_LDFLAGS)" >> $@ @echo "MAKEFILE = $(EDITOR_MAKEFILE)" >> $@ @echo "CONFIG += debug" >> $@ @echo "QT += core gui opengl" >> $@ @echo "TARGET = $(BINPATH)ed_$(DEMO_BIN)$(EXEEXT)" >> $@ @echo "TEMPLATE = app" >> $@ @echo "SOURCES = $(addprefix $(DMLIB),$(EDITOR_SOURCES))" >> $@ @echo "HEADERS = $(addprefix $(DMLIB),$(EDITOR_HEADERS))" >> $@ $(EDITOR_MAKEFILE): $(EDITOR_PRO) @echo " QMAKE $+" @qmake -Wall $< $(BINPATH)ed_$(DEMO_BIN)$(EXEEXT): $(EDITOR_MAKEFILE) @$(MAKE) -f $< ### ### Special targets ### clean: -$(RM) $(TARGETS) $(TMPFILES) $(OBJPATH)*.o