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