Mercurial > hg > dmlib
view Makefile.gen @ 49:033c660c25f5
Restructure module playing, removing 8bit sample mixing (output can still be
8bit, but samples are internally upconverted to 16bit after module loading.)
Also prepare for floating point mixing support.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Mon, 01 Oct 2012 02:51:41 +0300 |
parents | 7908061da010 |
children | 36e2f910219c |
line wrap: on
line source
### ### Get settings from config.mak ### include config.mak ifeq ($(EXTRA_CFLAGS),) EXTRA_CFLAGS=-march=core2 endif ifneq ($(DMLIB),) DM_CFLAGS += -I$(DMLIB) 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 ifeq ($(DM_BUILD_TOOLS),yes) BINARIES += packed endif 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_BUILD_TESTS),yes) ifeq ($(DM_GFX_BLITS),yes) BINARIES += blittest vview vptest efu 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 ### 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_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) TARGETS += $(DMLIB)jmix_c.c DMLIB_OBJS+=jmix_c.o endif #ifeq ($(DM_USE_SIMD),yes) #DMLIB_OBJS+=jmix_simd.o #endif ### Dependancies ifeq ($(DM_BUILD_TOOLS),yes) ifeq ($(DMRES_STDIO),yes) ifeq ($(SUP_MODLOAD),yes) BINARIES+= viewmod mod2wav testpl endif ifeq ($(JSS_SUP_JSSMOD),yes) ifeq ($(JSS_SUP_XM),yes) BINARIES+= xm2jss endif endif endif endif DMLIB_OBJS += jss.o jssmix.o jssmod.o jssplr.o 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 \ dmsimple.o ifeq ($(DM_BUILD_TESTS),yes) BINARIES += vecmattest fptest endif TARGETS += $(DMLIB_A) $(addprefix $(BINPATH),$(addsuffix $(EXEEXT),$(BINARIES))) all: $(TARGETS) ### ### Generic rules ### $(OBJPATH)%.o: $(DMLIB)%.c $(DMLIB)%.h @echo " CC $<" @$(CC) $(CFLAGS) -c -o $@ $< $(DM_CFLAGS) $(OBJPATH)%.o: $(DMLIB)%.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 ### $(DMLIB)jmix_c.c: $(DMLIB)jmix_c_in.c $(DMLIB)jmixtmpl_c.h $(DMLIB)jmix_post_c.h (echo "#include \"jssmix.h\"" && cpp $<) | sed "s/^# .*//g" > $@ $(OBJPATH)dmimage.o: $(DMLIB)dmimage.c $(DMLIB)stb_image.c @echo " CC $+" @$(CC) $(CFLAGS) -c -o $@ $< $(DM_CFLAGS) $(OBJPATH)dmblit.o: $(DMLIB)dmblit.c $(DMLIB)dmscaledblit.h $(DMLIB)dmblitfunc.h @echo " CC $+" @$(CC) $(CFLAGS) -c -o $@ $< $(DM_CFLAGS) $(OBJPATH)dmline.o: $(DMLIB)dmline.c $(DMLIB)dmdrawline.h $(DMLIB)dmlinefunc.h @echo " CC $+" @$(CC) $(CFLAGS) -c -o $@ $< $(DM_CFLAGS) $(OBJPATH)dmargs.o: $(DMLIB)dmargs.c $(DMLIB)dmargs.h $(DMLIB)dmargs_int.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 and binaries ### $(BINPATH)%$(EXEEXT): $(OBJPATH)%.o $(DMLIB_A) @echo " LINK $+" @$(CC) -o $@ $+ $(DM_LDFLAGS) $(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 $(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