git-subtree-dir: src/dp_doom git-subtree-split: 190992421c7c643afc99d7f7c511c162f65bea85
83 lines
2 KiB
Makefile
83 lines
2 KiB
Makefile
#------------------------------------------------------------------------------#
|
|
# Makefile for building WildMidi library and player for DOS.
|
|
# You will need a DJGPP build environment and GNU make to do it painlessly.
|
|
# To build natively on DOS, you need long file names support (e.g. doslfn.)
|
|
#------------------------------------------------------------------------------#
|
|
|
|
# Set to 1 for debug build
|
|
DEBUG = 0
|
|
|
|
# DXE3 version of the library requires DJGPP-2.05 or newer.
|
|
# Set to 0 if dont want to build / use a DXE3 version of the library.
|
|
USE_DXE = 1
|
|
|
|
# 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
|
|
DXE3GEN=dxe3gen
|
|
|
|
INCLUDE = -I. -I../include/stdint -I../include
|
|
CFLAGS = $(INCLUDE) -Wall -W -fno-common
|
|
ARFLAGS = cr
|
|
|
|
# SB output support (comment out if not wanted)
|
|
CFLAGS+= -DAUDIODRV_DOSSB
|
|
SB_OBJ = dosirq.o dosdma.o dossb.o
|
|
|
|
LD = $(CC)
|
|
ifneq ($(USE_DXE),1)
|
|
WM_LINK = WildMidi
|
|
else
|
|
WM_LINK = WildMidi_dxe
|
|
endif
|
|
LDFLAGS = -L. -l$(WM_LINK)
|
|
|
|
# build for pentium and newer (comment out if not wanted)
|
|
CFLAGS += -march=i586
|
|
ifeq ($(DEBUG),1)
|
|
CFLAGS += -g
|
|
else
|
|
CFLAGS += -O2 -fomit-frame-pointer -ffast-math
|
|
endif
|
|
|
|
# Build rules
|
|
%.o: %.c
|
|
$(CC) -c $(CFLAGS) -o $@ $<
|
|
%.o: ../src/%.c
|
|
$(CC) -c $(CFLAGS) -o $@ $<
|
|
|
|
# Objects
|
|
LIB_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
|
|
PLAYER_OBJ= $(SB_OBJ) getopt_long.o wm_tty.o wildmidi.o
|
|
|
|
# Build targets
|
|
TARGETS = libWildMidi.a wildmidi.exe libWildMidi_dxe.a wildmidi.dxe
|
|
|
|
.PHONY: clean distclean
|
|
all: $(TARGETS)
|
|
|
|
libWildMidi.a: $(LIB_OBJ)
|
|
$(AR) $(ARFLAGS) $@ $^
|
|
$(RANLIB) $@
|
|
|
|
libWildMidi_dxe.a: wildmidi.dxe
|
|
wildmidi.dxe: $(LIB_OBJ)
|
|
-$(DXE3GEN) -Y libWildMidi_dxe.a -o $@ -E _WildMidi_ -U $^
|
|
|
|
wildmidi.exe: lib$(WM_LINK).a $(PLAYER_OBJ)
|
|
$(LD) -o $@ $(PLAYER_OBJ) $(LDFLAGS)
|
|
|
|
clean:
|
|
rm -rf $(LIB_OBJ) $(PLAYER_OBJ)
|
|
distclean: clean
|
|
rm -rf $(TARGETS)
|
|
|