1# GNU Makefile to build for AmigaOS variants using gcc 2# 3# make aros : build for i386-aros 4# make morphos : build for ppc-morphos 5# make amigaos : build for m68k-amigaos 6# make amigaos4 : build for ppc-amigaos4 7 8# Set to 1 for debug build 9DEBUG = 0 10 11# The tools 12ifeq ($(CROSS),) 13CC=gcc 14AS=as 15AR=ar 16RANLIB=ranlib 17else 18CC=$(CROSS)-gcc 19AS=$(CROSS)-as 20AR=$(CROSS)-ar 21RANLIB=$(CROSS)-ranlib 22endif 23 24INCLUDE = -I. -I../include 25CFLAGS = $(INCLUDE) -Wall -W -fno-common 26ARFLAGS = cr 27LD = $(CC) 28LDFLAGS = -L. -lWildMidi 29 30ifeq ($(DEBUG),1) 31CFLAGS += -g 32else 33CFLAGS += -O2 34endif 35 36ifeq ($(AROS),1) 37include gcc_aros.cfg 38endif 39ifeq ($(MORPHOS),1) 40include gcc_morphos.cfg 41endif 42ifeq ($(AOS3),1) 43include gcc_aos3.cfg 44endif 45ifeq ($(AOS4),1) 46include gcc_aos4.cfg 47endif 48 49# Build rules 50%.o: %.c 51 $(CC) -c $(CFLAGS) -o $@ $< 52%.o: ../src/%.c 53 $(CC) -c $(CFLAGS) -o $@ $< 54 55# Objects 56LIB_OBJ= wm_error.o file_io.o lock.o wildmidi_lib.o reverb.o gus_pat.o 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 57PLAYER_OBJ= getopt_long.o wm_tty.o amiga.o wildmidi.o 58 59# Build targets 60.PHONY: clean distclean 61all: libWildMidi.a wildmidi 62 63libWildMidi.a: $(LIB_OBJ) 64 $(AR) $(ARFLAGS) $@ $^ 65 $(RANLIB) $@ 66 67wildmidi: libWildMidi.a $(PLAYER_OBJ) 68 $(LD) -o $@ $(PLAYER_OBJ) $(LDFLAGS) 69 70aros: 71 @echo Building for i386-aros 72 $(MAKE) AROS=1 73morphos: 74 @echo Building for ppc-morphos 75 $(MAKE) MORPHOS=1 76amigaos: 77 @echo Building for m68k-amigaos 78 $(MAKE) AOS3=1 79amigaos4: 80 @echo Building for ppc-amigaos4 81 $(MAKE) AOS4=1 82 83clean: 84 rm -rf $(LIB_OBJ) $(PLAYER_OBJ) 85distclean: clean 86 rm -rf libWildMidi.a WildMidi.lib wildmidi 87