git-subtree-dir: src/dp_doom git-subtree-split: 190992421c7c643afc99d7f7c511c162f65bea85
120 lines
2.8 KiB
Makefile
120 lines
2.8 KiB
Makefile
# Makefile to build WildMidi library and player for Mac OS X.
|
|
|
|
# Set to 1 for debug build
|
|
DEBUG = 0
|
|
|
|
# The tools
|
|
ifeq ($(CROSS),)
|
|
CC=gcc
|
|
AS=as
|
|
AR=ar
|
|
RANLIB=ranlib
|
|
LIPO=lipo
|
|
else
|
|
CC=$(CROSS)-gcc
|
|
AS=$(CROSS)-as
|
|
AR=$(CROSS)-ar
|
|
RANLIB=$(CROSS)-ranlib
|
|
LIPO=$(CROSS)-lipo
|
|
endif
|
|
LD = $(CC)
|
|
|
|
DYLIB_MAJ=2
|
|
DYLIB_MID=1
|
|
DYLIB_MIN=0
|
|
|
|
LIBNAME=WildMidi
|
|
LIBSTATIC=lib$(LIBNAME).a
|
|
LIBSHARED=lib$(LIBNAME).dylib
|
|
LIBSHARED_FULL=lib$(LIBNAME).$(DYLIB_MAJ).$(DYLIB_MID).$(DYLIB_MIN).dylib
|
|
LIBSHARED_MAJ=lib$(LIBNAME).$(DYLIB_MAJ).dylib
|
|
LIB_INSTALLNAME=$(LIBSHARED_MAJ)
|
|
PLAYER=wildmidi
|
|
PLAYER_STATIC=wildmidi-static
|
|
|
|
INCLUDE=-I. -I../include
|
|
ARFLAGS=cr
|
|
CFLAGS=$(INCLUDE) -Wall -W -fno-common
|
|
LDFLAGS=
|
|
LDLIBS=
|
|
ifeq ($(DEBUG),1)
|
|
CFLAGS+=-g
|
|
else
|
|
CFLAGS+=-O2 -fomit-frame-pointer -ffast-math
|
|
endif
|
|
# specifically for 10.5 and newer:
|
|
#CFLAGS+=-mmacosx-version-min=10.5
|
|
#LDFLAGS+=-mmacosx-version-min=10.5
|
|
# specifically for 10.6 and newer:
|
|
#CFLAGS+=-mmacosx-version-min=10.6
|
|
#LDFLAGS+=-mmacosx-version-min=10.6 -Wl,-lbundle1.o
|
|
|
|
CFLAGS_LIB=$(CFLAGS) -DWILDMIDI_BUILD
|
|
LDFLAGS_LIB=$(LDFLAGS)
|
|
LDLIBS_LIB=$(LDLIBS)
|
|
LDFLAGS_LIB+=-dynamiclib -Wl,-single_module
|
|
LDFLAGS_LIB+=-Wl,-undefined,error
|
|
LDFLAGS_LIB+=-Wl,-install_name,"@executable_path/$(LIB_INSTALLNAME)"
|
|
LDFLAGS_LIB+=-Wl,-compatibility_version,$(DYLIB_MAJ).0.0 -Wl,-current_version,$(DYLIB_MAJ).$(DYLIB_MID).$(DYLIB_MIN)
|
|
|
|
CFLAGS_EXE=$(CFLAGS)
|
|
LDFLAGS_EXE=$(LDFLAGS)
|
|
LDLIBS_EXE=$(LDLIBS)
|
|
# OpenAL output support (comment out if not wanted)
|
|
CFLAGS_EXE+=-DAUDIODRV_OPENAL
|
|
LDFLAGS_EXE+=-Wl,-framework,OpenAL
|
|
LDLIBS_EXE+=-L. -l$(LIBNAME)
|
|
|
|
# Objects
|
|
LIB_OBJ = wm_error.o file_io.o lock.o wildmidi_lib.o reverb.o gus_pat.o
|
|
LIB_OBJ+= f_xmidi.o f_mus.o f_hmp.o f_midi.o f_hmi.o mus2mid.o xmi2mid.o internal_midi.o patches.o sample.o
|
|
PLAYER_OBJ = wm_tty.o wildmidi.o
|
|
|
|
.PHONY: clean distclean
|
|
|
|
help:
|
|
@echo "Valid targets:"
|
|
@echo ""
|
|
@echo " $(MAKE) shared"
|
|
@echo " $(MAKE) static"
|
|
@echo ""
|
|
|
|
shared: $(LIBSHARED) $(PLAYER)
|
|
shared: CFLAGS_LIB+=-fvisibility=hidden -DSYM_VISIBILITY
|
|
|
|
static: $(LIBSTATIC) $(PLAYER_STATIC)
|
|
static: CFLAGS+=-DWILDMIDI_STATIC
|
|
|
|
$(LIBSHARED_FULL): $(LIB_OBJ)
|
|
$(CC) $^ $(LDFLAGS_LIB) $(LDLIBS_LIB) -o $@
|
|
$(LIBSHARED_MAJ): $(LIBSHARED_FULL)
|
|
ln -s $^ $@
|
|
$(LIBSHARED): $(LIBSHARED_MAJ)
|
|
ln -s $^ $@
|
|
|
|
$(LIBSTATIC): $(LIB_OBJ)
|
|
$(AR) $(ARFLAGS) $@ $^
|
|
$(RANLIB) $@
|
|
|
|
$(PLAYER): $(PLAYER_OBJ) $(LIBSHARED)
|
|
$(LD) $(PLAYER_OBJ) $(LDFLAGS_EXE) $(LDLIBS_EXE) -o $@
|
|
|
|
$(PLAYER_STATIC): $(PLAYER_OBJ) $(LIBSTATIC)
|
|
$(LD) $(PLAYER_OBJ) $(LDFLAGS_EXE) $(LDLIBS_EXE) -o $@
|
|
|
|
# Build rules
|
|
%.o: %.c
|
|
$(CC) -c $(CFLAGS_LIB) -o $@ $<
|
|
%.o: ../src/%.c
|
|
$(CC) -c $(CFLAGS_LIB) -o $@ $<
|
|
# for player objects:
|
|
wildmidi.o: ../src/wildmidi.c
|
|
$(CC) -c $(CFLAGS_EXE) -o $@ $<
|
|
wm_tty.o: ../src/wm_tty.c
|
|
$(CC) -c $(CFLAGS_EXE) -o $@ $<
|
|
|
|
clean:
|
|
rm -rf $(LIB_OBJ) $(PLAYER_OBJ)
|
|
|
|
distclean: clean
|
|
rm -rf *.a *.dylib $(PLAYER) $(PLAYER_STATIC)
|