Mercurial > hg > dmlib
view Makefile.gen @ 1931:410679d2fe8a
"Enable" the image->c64 bitmap conversion path in gfxconv. It does not work
without the necessary bits elsewhere, though. Also add DMC64ImageConvSpec
structure for delivering conversion parameters, though it is not yet used
either.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Thu, 28 Jun 2018 17:26:30 +0300 |
parents | 73545a442ffe |
children | 663a8a73cccd |
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_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_TESTS),yes) ifeq ($(DM_GFX_BLITS),yes) ifeq ($(DM_USE_STDIO),yes) #TESTS_BINARIES += blittest endif endif endif else SDL_TTF_LDFLAGS= SDL_TTF_CFLAGS= 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) ifeq ($(DM_USE_STDIO),yes) TOOL_BINARIES+= objlink data2inc gfxconv gentab fanalyze ifeq ($(SUP_MODLOAD),yes) TOOL_BINARIES+= dumpmod mod2wav TESTS_BINARIES+= plrtest ifeq ($(DM_GFX_BLITS),yes) TOOL_BINARIES+= 64vw ifeq ($(DM_GFX_BM_TEXT),yes) TOOL_BINARIES+= ppl 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 ### What tests to build? ifeq ($(DM_BUILD_TESTS),yes) TESTS_BINARIES += vecmattest fptest dzlibtest 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 dmlib.o dmcurves.o dmstring.o \ dmgrowbuf.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)dmresw.o: $(DMLIBSRC)dmresw.c $(DMLIBSRC)dmres.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)libgfx.o: $(DMLIB)tools/libgfx.c $(DMLIB)tools/libgfx.h @echo " CC $+" @$(CC) $(CFLAGS) -c -o $@ $< $(DM_CFLAGS) $(LIBPNG_CFLAGS) $(OBJPATH)lib64fmts.o: $(DMLIB)tools/lib64fmts.c $(DMLIB)tools/lib64gfx.h @echo " CC $+" @$(CC) $(CFLAGS) -c -o $@ $< $(DM_CFLAGS) $(DMLIB)assets/SetupFont.dmf: $(DMLIB)assets/SetupFont.fnt $(FONTCONV_BIN) $< $@ $(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)dzlibtest$(EXEEXT): $(OBJPATH)dzlibtest.o $(DMLIB_A) @echo " LINK $+" @$(CC) -o $@ $(filter %.o %.a,$+) $(DM_LDFLAGS) $(SDL_LDFLAGS) $(ZLIB_LDFLAGS) $(TESTS_BINPATH)plrtest$(EXEEXT): $(OBJPATH)plrtest.o $(DMLIB_A) @echo " LINK $+" @$(CC) -o $@ $(filter %.o %.a,$+) $(DM_LDFLAGS) $(SDL_LDFLAGS) $(ZLIB_LDFLAGS) -lm $(TESTS_BINPATH)%test$(EXEEXT): $(OBJPATH)%test.o $(DMLIB_A) @echo " LINK $+" @$(CC) -o $@ $(filter %.o %.a,$+) $(DM_LDFLAGS) $(TOOL_LDFLAGS) -lm ### ### Tools ### $(TOOL_BINPATH)fontconv$(EXEEXT): $(OBJPATH)fontconv.o $(DMLIB_A) @echo " LINK $+" @$(CC) -o $@ $(filter %.o %.a,$+) $(DM_LDFLAGS) $(TOOL_LDFLAGS) $(SDL_LDFLAGS) $(SDL_TTF_LDFLAGS) $(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) $(ZLIB_LDFLAGS) $(TOOL_BINPATH)mod2wav$(EXEEXT): $(OBJPATH)mod2wav.o $(DMLIB_A) @echo " LINK $+" @$(CC) -o $@ $(filter %.o %.a,$+) $(DM_LDFLAGS) $(TOOL_LDFLAGS) $(ZLIB_LDFLAGS) -lm $(TOOL_BINPATH)xm2jss$(EXEEXT): $(OBJPATH)xm2jss.o $(DMLIB_A) @echo " LINK $+" @$(CC) -o $@ $(filter %.o %.a,$+) $(DM_LDFLAGS) $(TOOL_LDFLAGS) $(ZLIB_LDFLAGS) $(TOOL_BINPATH)dumpmod$(EXEEXT): $(OBJPATH)dumpmod.o $(DMLIB_A) @echo " LINK $+" @$(CC) -o $@ $(filter %.o %.a,$+) $(DM_LDFLAGS) $(TOOL_LDFLAGS) $(ZLIB_LDFLAGS) $(TOOL_BINPATH)ppl$(EXEEXT): $(DMLIBSRC)setupfont.h $(OBJPATH)ppl.o $(OBJPATH)libgutil.o $(DMLIB_A) @echo " LINK $+" @$(CC) -o $@ $(filter %.o %.a,$+) $(DM_LDFLAGS) $(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)fanalyze$(EXEEXT): $(OBJPATH)fanalyze.o $(DMLIB_A) @echo " LINK $+" @$(CC) -o $@ $(filter %.o %.a,$+) $(DM_LDFLAGS) $(TOOL_LDFLAGS) $(TOOL_BINPATH)gfxconv$(EXEEXT): $(OBJPATH)gfxconv.o $(OBJPATH)lib64gfx.o $(OBJPATH)lib64fmts.o $(OBJPATH)libgfx.o $(DMLIB_A) @echo " LINK $+" @$(CC) -o $@ $(filter %.o %.a,$+) $(DM_LDFLAGS) $(TOOL_LDFLAGS) $(LIBPNG_LDFLAGS) $(ZLIB_LDFLAGS) $(TOOL_BINPATH)64vw$(EXEEXT): $(OBJPATH)64vw.o $(OBJPATH)lib64gfx.o $(OBJPATH)lib64fmts.o $(OBJPATH)libgfx.o $(DMLIB_A) @echo " LINK $+" @$(CC) -o $@ $(filter %.o %.a,$+) $(DM_LDFLAGS) $(LIBPNG_LDFLAGS) $(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 ### ### 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