#------------------------------------------------------------------------------# # This is the Makefile for building libMikMod using GNU Make and GNU C compiler # You will need the following tools to do it painlessly: # - (P)GCC/DJGPP package # - GNU Make # - GNU grep # - GNU sed #------------------------------------------------------------------------------# # Targets: # - all (default): make libmikmod.a, static MikMod sound library # - clean: clean up (remove all generated files) # - depend: rebuild dependencies (at the end of this makefile) # You should have makedep tool from Crystal Space project installed. #------------------------------------------------------------------------------# # Edit config.h to disable/enable certain drivers, etc, if necessary. #------------------------------------------------------------------------------# # Set to 1 for debug build DEBUG = 0 # The tools ifeq ($(CROSS),) CC=gcc AS=as AR=ar RANLIB=ranlib else CC=$(CROSS)-gcc AS=$(CROSS)-as AR=$(CROSS)-ar RANLIB=$(CROSS)-ranlib endif CFLAGS = -DMIKMOD_BUILD -DHAVE_CONFIG_H $(INCLUDE) INCLUDE = -I../dos -I../drivers/dos -I../include ARFLAGS = cr ifeq ($(DEBUG),1) CFLAGS += -g -Wall else CFLAGS += -O2 -Wall -fomit-frame-pointer -ffast-math endif # Directory layout SRCPATH = ../drivers/dos ../loaders ../mmio ../depackers ../playercode OUT = out # MikMod drivers # stdout and pipe drivers are disabled: edit config.h to enable them. DRIVERS = drv_ultra drv_sb drv_wss drv_wav drv_aiff drv_raw drv_stdout drv_pipe drv_nos vpath %.c $(SRCPATH) ../drivers # Build rules $(OUT)/%.o: %.c $(CC) -c $(CFLAGS) -o $@ $< SRC = $(wildcard $(addsuffix /*.c,$(SRCPATH))) \ $(addsuffix .c,$(addprefix ../drivers/,$(DRIVERS))) OBJ = $(addprefix $(OUT)/,$(notdir $(SRC:.c=.o))) # The build targets TARGETS = $(OUT) libmikmod.a all: $(TARGETS) clean: rm -rf $(TARGETS) depend: $(SRC) makedep -DHAVE_CONFIG_H -D__DJGPP__ $(INCLUDE) -r -p$(OUT)/ $^ $(OUT): mkdir $@ libmikmod.a: $(OBJ) $(AR) $(ARFLAGS) $@ $^ $(RANLIB) $@ # DO NOT DELETE this line - makedep depends on it out/load_669.o: config.h ../include/mikmod_internals.h out/load_amf.o: config.h ../include/mikmod_internals.h out/load_asy.o: config.h ../include/mikmod_internals.h out/load_dsm.o: config.h ../include/mikmod_internals.h out/load_far.o: config.h ../include/mikmod_internals.h out/load_gdm.o: config.h ../include/mikmod_internals.h out/load_imf.o: config.h ../include/mikmod_internals.h out/load_it.o: config.h ../include/mikmod_internals.h out/load_m15.o: config.h ../include/mikmod_internals.h out/load_med.o: config.h ../include/mikmod_internals.h out/load_mod.o: config.h ../include/mikmod_internals.h out/load_mtm.o: config.h ../include/mikmod_internals.h out/load_s3m.o: config.h ../include/mikmod_internals.h out/load_stm.o: config.h ../include/mikmod_internals.h out/load_stx.o: config.h ../include/mikmod_internals.h out/load_ult.o: config.h ../include/mikmod_internals.h out/load_umx.o: config.h ../include/mikmod_internals.h out/load_uni.o: config.h ../include/mikmod_internals.h out/load_xm.o: config.h ../include/mikmod_internals.h out/mdreg.o: config.h ../include/mikmod_internals.h out/mdriver.o: config.h ../include/mikmod_internals.h out/mloader.o: config.h ../include/mikmod_internals.h out/mlreg.o: config.h ../include/mikmod_internals.h out/mlutil.o: config.h ../include/mikmod_internals.h out/mmalloc.o: config.h ../include/mikmod_internals.h out/mmerror.o: config.h ../include/mikmod_internals.h out/mmio.o: config.h ../include/mikmod_internals.h out/mmcmp.o: config.h ../include/mikmod_internals.h out/pp20.o: config.h ../include/mikmod_internals.h out/s404.o: config.h ../include/mikmod_internals.h out/xpk.o: config.h ../include/mikmod_internals.h out/mplayer.o: config.h ../include/mikmod_internals.h out/munitrk.o: config.h ../include/mikmod_internals.h out/mwav.o: config.h ../include/mikmod_internals.h out/npertab.o: config.h ../include/mikmod_internals.h out/sloader.o: config.h ../include/mikmod_internals.h out/drv_ultra.o: config.h ../include/mikmod_internals.h \ ../drivers/dos/libgus.h out/drv_sb.o: config.h ../include/mikmod_internals.h \ ../drivers/dos/dossb.h \ ../drivers/dos/dosdma.h ../drivers/dos/dosirq.h out/drv_wss.o: config.h ../include/mikmod_internals.h \ ../drivers/dos/doswss.h \ ../drivers/dos/dosdma.h ../drivers/dos/dosirq.h out/drv_wav.o: config.h ../include/mikmod_internals.h out/drv_aiff.o: config.h ../include/mikmod_internals.h out/drv_raw.o: config.h ../include/mikmod_internals.h out/drv_stdout.o: config.h ../include/mikmod_internals.h out/drv_pipe.o: config.h ../include/mikmod_internals.h out/drv_nos.o: config.h ../include/mikmod_internals.h out/dosgus.o: ../drivers/dos/dosgus.h ../drivers/dos/libgus.h \ ../drivers/dos/dosdma.h ../drivers/dos/dosirq.h out/dossb.o: ../drivers/dos/dossb.h ../drivers/dos/dosdma.h \ ../drivers/dos/dosirq.h out/doswss.o: ../drivers/dos/doswss.h ../drivers/dos/dosdma.h \ ../drivers/dos/dosirq.h out/dosdma.o: ../drivers/dos/dosdma.h out/dosirq.o: ../drivers/dos/dosirq.h