view 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 source

###
### 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