381 lines
12 KiB
Makefile
381 lines
12 KiB
Makefile
.PHONY: all clean distclean install uninstall
|
|
|
|
@DEFINE_DLOPEN_MAKE@
|
|
@DEFINE_ZLIB_MAKE@
|
|
@DEFINE_DISCMAGE_MAKE@
|
|
@DEFINE_USB_MAKE@
|
|
@DEFINE_LIBCD64_MAKE@
|
|
|
|
CC=@CC@
|
|
CFLAGS=-I. -Wall -W -O3 @DEFS@
|
|
LDFLAGS=-s
|
|
TARGETS=
|
|
|
|
ifdef USE_DISCMAGE
|
|
LIBNAME_DM=discmage
|
|
endif
|
|
|
|
# The test for Cygwin should be done before the test for DJGPP, because the
|
|
# environment variable DJGPP can be set under Bash for people who have
|
|
# installed both GCC (and friends) ports.
|
|
|
|
GCC_WIN=0
|
|
# test cygwin before DJGPP; OSTYPE is not exported on Cygwin
|
|
ifeq ($(TERM),cygwin)
|
|
GCC_WIN=1
|
|
endif
|
|
# test msys before DJGPP; MSYS, MinGW's POSIX build environment
|
|
ifeq ($(OSTYPE),msys)
|
|
GCC_WIN=1
|
|
endif
|
|
|
|
ifeq ($(GCC_WIN),1)
|
|
|
|
ifdef USE_DISCMAGE
|
|
FULLLIBNAME_DM=$(LIBNAME_DM).dll
|
|
ifndef DLOPEN
|
|
LDFLAGS+=libdiscmage/$(LIBNAME_DM).a
|
|
endif
|
|
endif
|
|
|
|
else
|
|
ifdef DJGPP
|
|
|
|
ifdef USE_DISCMAGE
|
|
FULLLIBNAME_DM=$(LIBNAME_DM).dxe
|
|
ifndef DLOPEN
|
|
LDFLAGS+=libdiscmage/$(LIBNAME_DM).a
|
|
endif
|
|
endif
|
|
|
|
else # Unix, BeOS or Mac OS X (Darwin)
|
|
|
|
ifeq ($(findstring openbsd,$(OSTYPE)),openbsd) # for example "openbsd3.4"
|
|
# i386_iopl() is located in libi386.a
|
|
LDFLAGS+=@LIBI386_MAKE@
|
|
endif
|
|
|
|
ifdef USE_DISCMAGE
|
|
ifeq ($(findstring darwin,$(OSTYPE)),darwin) # for example "darwin7.0"
|
|
FULLLIBNAME_DM=$(LIBNAME_DM).dylib
|
|
else
|
|
FULLLIBNAME_DM=$(LIBNAME_DM).so
|
|
endif
|
|
endif
|
|
|
|
ifdef DLOPEN
|
|
|
|
ifneq ($(OSTYPE),beos)
|
|
ifeq ($(findstring freebsd,$(OSTYPE)),) # false if OSTYPE contains "freebsd"
|
|
ifeq ($(findstring openbsd,$(OSTYPE)),) # false if OSTYPE contains "openbsd"
|
|
LDFLAGS+=-ldl
|
|
endif
|
|
endif
|
|
endif
|
|
|
|
else # DLOPEN
|
|
ifdef USE_DISCMAGE # GNU specific: "simply expanded variable"
|
|
FULLLIBNAME_DM:=$(addprefix lib,$(FULLLIBNAME_DM))
|
|
LDFLAGS+=-Llibdiscmage -l$(LIBNAME_DM)
|
|
endif
|
|
|
|
endif
|
|
|
|
endif # DJGPP
|
|
endif # GCC_WIN
|
|
|
|
TARGETS+=libdiscmage/$(FULLLIBNAME_DM)
|
|
|
|
|
|
ifdef USE_LIBCD64
|
|
LDFLAGS+=backup/libcd64/libcd64.a
|
|
TARGETS+=backup/libcd64/libcd64.a
|
|
endif
|
|
|
|
|
|
OBJECTS=ucon64.o ucon64_dat.o ucon64_misc.o ucon64_opts.o \
|
|
misc/chksum.o misc/file.o misc/getopt.o misc/getopt2.o \
|
|
misc/misc.o misc/parallel.o misc/property.o misc/string.o \
|
|
patch/aps.o patch/bsl.o patch/gg.o patch/ips.o patch/pal4u.o \
|
|
patch/ppf.o patch/xps.o \
|
|
console/dc.o console/gb.o console/gba.o console/genesis.o \
|
|
console/jaguar.o console/lynx.o console/n64.o console/neogeo.o \
|
|
console/nes.o console/ngp.o console/pce.o console/psx.o console/sms.o \
|
|
console/snes.o console/swan.o \
|
|
backup/cd64.o backup/cmc.o backup/dex.o backup/doctor64.o \
|
|
backup/doctor64jr.o backup/f2a.o backup/fal.o backup/ffe.o \
|
|
backup/fig.o backup/gbx.o backup/gd.o backup/interceptor.o \
|
|
backup/lynxit.o backup/mccl.o backup/mcd.o backup/md-pro.o \
|
|
backup/mgd.o backup/msg.o backup/pce-pro.o backup/pl.o \
|
|
backup/psxpblib.o backup/sflash.o backup/smc.o backup/smd.o \
|
|
backup/smsgg-pro.o backup/ssc.o backup/swc.o backup/tototek.o \
|
|
backup/ufo.o backup/yoko.o backup/z64.o
|
|
ifdef USE_ZLIB
|
|
LDFLAGS+=-lz
|
|
OBJECTS+=misc/archive.o misc/map.o misc/unzip.o
|
|
endif
|
|
ifdef USE_USB
|
|
LDFLAGS+=-lusb
|
|
OBJECTS+=misc/usb.o
|
|
endif
|
|
|
|
ifdef DLOPEN
|
|
OBJECTS+=misc/dlopen.o
|
|
ifndef USE_ZLIB
|
|
ifeq ($(GCC_WIN),1)
|
|
else
|
|
ifdef DJGPP # DJGPP code in dlopen needs map code
|
|
OBJECTS+=misc/map.o
|
|
endif # DJGPP
|
|
endif # GCC_WIN
|
|
endif # USE_ZLIB
|
|
else
|
|
ifeq ($(GCC_WIN),1) # Cygwin/MinGW code in ucon64_misc needs dlopen code
|
|
OBJECTS+=misc/dlopen.o
|
|
endif # GCC_WIN
|
|
endif # DLOPEN
|
|
|
|
|
|
TARGET=ucon64
|
|
ifeq ($(GCC_WIN),1)
|
|
TARGET:=$(addsuffix .exe,$(TARGET)) # adding .exe avoids "problems" with Cygwin/MinGW
|
|
else
|
|
ifdef DJGPP # OSTYPE is not defined by default under DOS
|
|
TARGET:=$(addsuffix .exe,$(TARGET))
|
|
endif # DJGPP
|
|
endif # GCC_WIN
|
|
TARGETS+=$(TARGET)
|
|
|
|
all: $(TARGETS)
|
|
|
|
|
|
CLEAN_CMD=rm -f $(TARGET) $(OBJECTS) *.core *.stackdump *~ */*~ */*/*~; \
|
|
cd libdiscmage && $(MAKE) clean; \
|
|
cd ../backup/libcd64 && $(MAKE) clean
|
|
|
|
clean:
|
|
ifeq ($(GCC_WIN),1)
|
|
$(CLEAN_CMD)
|
|
else
|
|
ifdef DJGPP
|
|
del *.o
|
|
del patch\*.o
|
|
del console\*.o
|
|
del backup\*.o
|
|
del misc\*.o
|
|
del $(TARGET)
|
|
cd libdiscmage
|
|
$(MAKE) clean
|
|
cd ../backup/libcd64
|
|
$(MAKE) clean
|
|
cd ../..
|
|
else # Unix, BeOS or Mac OS X (Darwin)
|
|
$(CLEAN_CMD)
|
|
endif # DJGPP
|
|
endif # GCC_WIN
|
|
|
|
|
|
DISTCLEAN_CMD=rm -f Makefile config.log config.status config.cache config.h; \
|
|
cd libdiscmage && $(MAKE) distclean; \
|
|
cd ../backup/libcd64 && $(MAKE) clean
|
|
# libcd64 Makefile has no distclean target
|
|
|
|
distclean: clean
|
|
ifeq ($(GCC_WIN),1)
|
|
$(DISTCLEAN_CMD)
|
|
else
|
|
ifdef DJGPP
|
|
del Makefile
|
|
del config.log
|
|
del config.status
|
|
del config.cache
|
|
del config.h
|
|
cd libdiscmage
|
|
$(MAKE) distclean
|
|
cd ../backup/libcd64
|
|
$(MAKE) clean
|
|
cd ../..
|
|
else
|
|
$(DISTCLEAN_CMD)
|
|
endif # DJGPP
|
|
endif # GCC_WIN
|
|
|
|
|
|
.c.o:
|
|
$(CC) $(CFLAGS) -c $< -o $@
|
|
|
|
backup/cd64.o: backup/cd64.c
|
|
$(CC) $(CFLAGS) -Ibackup/libcd64 -c $< -o $@
|
|
|
|
|
|
ifdef USE_DISCMAGE
|
|
libdiscmage/$(FULLLIBNAME_DM):
|
|
ifeq ($(GCC_WIN),1)
|
|
cd libdiscmage && $(MAKE)
|
|
else
|
|
ifdef DJGPP
|
|
cd libdiscmage
|
|
$(MAKE)
|
|
cd ..
|
|
else
|
|
cd libdiscmage && $(MAKE)
|
|
endif # DJGPP
|
|
endif # GCC_WIN
|
|
endif # USE_DISCMAGE
|
|
|
|
ifdef USE_LIBCD64
|
|
backup/libcd64/libcd64.a:
|
|
ifeq ($(GCC_WIN),1)
|
|
cd backup/libcd64 && $(MAKE)
|
|
else
|
|
ifdef DJGPP
|
|
cd backup/libcd64
|
|
$(MAKE)
|
|
cd ../..
|
|
else
|
|
cd backup/libcd64 && $(MAKE)
|
|
endif # DJGPP
|
|
endif # GCC_WIN
|
|
endif # USE_DISCMAGE
|
|
|
|
$(TARGET): $(OBJECTS)
|
|
$(CC) $(OBJECTS) $(LDFLAGS) -o $@
|
|
|
|
|
|
install:
|
|
ifeq ($(TERM),cygwin) # test cygwin before DJGPP
|
|
else
|
|
ifeq ($(OSTYPE),msys) # test msys before DJGPP
|
|
else
|
|
ifdef DJGPP
|
|
else
|
|
ifeq ($(OSTYPE),beos)
|
|
./install_beos.sh
|
|
else
|
|
./install.sh
|
|
endif # beos
|
|
endif # DJGPP
|
|
endif # msys
|
|
endif # cygwin
|
|
ifndef DLOPEN
|
|
cd libdiscmage && $(MAKE) install
|
|
endif
|
|
|
|
|
|
uninstall:
|
|
ifeq ($(TERM),cygwin) # test cygwin before DJGPP
|
|
else
|
|
ifeq ($(OSTYPE),msys) # test msys before DJGPP
|
|
else
|
|
ifdef DJGPP
|
|
else
|
|
ifeq ($(OSTYPE),beos)
|
|
rm -f $(HOME)/config/bin/$(TARGET)
|
|
else
|
|
rm -f /usr/local/bin/$(TARGET)
|
|
endif # beos
|
|
endif # DJGPP
|
|
endif # msys
|
|
endif # cygwin
|
|
ifndef DLOPEN
|
|
cd libdiscmage && $(MAKE) uninstall
|
|
endif
|
|
|
|
|
|
# Dependencies
|
|
|
|
# Most source files include these
|
|
UCON64_STD_H=ucon64.h ucon64_misc.h misc/misc.h config.h ucon64_defines.h
|
|
|
|
misc/archive.o: misc/archive.h misc/map.h config.h
|
|
misc/chksum.o: misc/chksum.h config.h
|
|
misc/dlopen.o: misc/dlopen.h misc/dxedll_pub.h config.h
|
|
misc/getopt.o: misc/getopt.h
|
|
misc/map.o: misc/map.h config.h
|
|
misc/misc.o: misc/misc.h misc/archive.h config.h
|
|
misc/parallel.o: misc/parallel.h config.h
|
|
misc/usb.o: misc/usb.h config.h
|
|
misc/unzip.o: misc/unzip.h config.h
|
|
ucon64.o: misc/dlopen.h misc/getopt.h ucon64_dat.h ucon64_opts.h \
|
|
console/dc.h console/gb.h console/gba.h console/genesis.h \
|
|
console/jaguar.h console/lynx.h console/n64.h console/neogeo.h \
|
|
console/nes.h console/ngp.h console/pce.h console/psx.h console/sms.h \
|
|
console/snes.h console/swan.h \
|
|
backup/cd64.h backup/dex.h backup/doctor64.h backup/doctor64jr.h \
|
|
backup/f2a.h backup/fal.h backup/ffe.h backup/fig.h backup/gbx.h \
|
|
backup/gd.h backup/interceptor.h backup/lynxit.h backup/mccl.h \
|
|
backup/mcd.h backup/md-pro.h backup/mgd.h backup/msg.h \
|
|
backup/pce-pro.h backup/pl.h backup/smc.h backup/smd.h \
|
|
backup/smsgg-pro.h backup/ssc.h backup/swc.h backup/tototek.h \
|
|
backup/ufo.h backup/yoko.h backup/z64.h \
|
|
patch/aps.h patch/bsl.h patch/gg.h patch/ips.h patch/pal4u.h \
|
|
patch/ppf.h patch/xps.h $(UCON64_STD_H)
|
|
ucon64_dat.o: ucon64_dat.h $(UCON64_STD_H)
|
|
ucon64_misc.o: misc/dlopen.h $(UCON64_STD_H)
|
|
ucon64_opts.o: misc/dlopen.h misc/getopt.h ucon64_dat.h ucon64_opts.h \
|
|
console/dc.h console/gb.h console/gba.h console/genesis.h \
|
|
console/jaguar.h console/lynx.h console/n64.h console/neogeo.h \
|
|
console/nes.h console/ngp.h console/pce.h console/psx.h \
|
|
console/sms.h console/snes.h console/swan.h \
|
|
backup/cd64.h backup/dex.h backup/doctor64.h \
|
|
backup/doctor64jr.h backup/f2a.h backup/fal.h backup/ffe.h \
|
|
backup/fig.h backup/gbx.h backup/gd.h backup/interceptor.h \
|
|
backup/lynxit.h backup/mccl.h backup/mcd.h backup/md-pro.h \
|
|
backup/mgd.h backup/msg.h backup/pce-pro.h backup/pl.h \
|
|
backup/smc.h backup/smd.h backup/smsgg-pro.h backup/ssc.h \
|
|
backup/swc.h backup/tototek.h backup/ufo.h backup/yoko.h \
|
|
backup/z64.h \
|
|
patch/aps.h patch/bsl.h patch/gg.h patch/ips.h patch/pal4u.h \
|
|
patch/ppf.h patch/xps.h $(UCON64_STD_H)
|
|
console/dc.o: console/dc.h $(UCON64_STD_H)
|
|
console/gb.o: console/gb.h backup/mgd.h $(UCON64_STD_H)
|
|
console/gba.o: console/gba.h $(UCON64_STD_H)
|
|
console/genesis.o: console/genesis.h backup/smd.h backup/mgd.h $(UCON64_STD_H)
|
|
console/jaguar.o: console/jaguar.h $(UCON64_STD_H)
|
|
console/lynx.o: console/lynx.h $(UCON64_STD_H)
|
|
console/n64.o: console/n64.h $(UCON64_STD_H)
|
|
console/neogeo.o: console/neogeo.h $(UCON64_STD_H)
|
|
console/nes.o: console/nes.h $(UCON64_STD_H)
|
|
console/ngp.o: console/ngp.h $(UCON64_STD_H)
|
|
console/pce.o: console/pce.h backup/mgd.h $(UCON64_STD_H)
|
|
console/psx.o: console/psx.h $(UCON64_STD_H)
|
|
console/sms.o: console/sms.h backup/smd.h backup/mgd.h $(UCON64_STD_H)
|
|
console/snes.o: console/snes.h backup/mgd.h $(UCON64_STD_H)
|
|
console/swan.o: console/swan.h $(UCON64_STD_H)
|
|
backup/cd64.o: backup/cd64.h $(UCON64_STD_H)
|
|
backup/cmc.o: backup/cmc.h $(UCON64_STD_H)
|
|
backup/dex.o: backup/dex.h backup/psxpblib.h $(UCON64_STD_H)
|
|
backup/doctor64.o: backup/doctor64.h $(UCON64_STD_H)
|
|
backup/doctor64jr.o: backup/doctor64jr.h $(UCON64_STD_H)
|
|
backup/f2a.o: backup/f2a.h $(UCON64_STD_H)
|
|
backup/fal.o: backup/fal.h backup/cartlib.c $(UCON64_STD_H)
|
|
backup/ffe.o: backup/ffe.h $(UCON64_STD_H)
|
|
backup/fig.o: backup/fig.h console/snes.h $(UCON64_STD_H)
|
|
backup/gd.o: backup/gd.h console/snes.h $(UCON64_STD_H)
|
|
backup/gbx.o: backup/gbx.h $(UCON64_STD_H)
|
|
backup/lynxit.o: backup/lynxit.h $(UCON64_STD_H)
|
|
backup/mccl.o: backup/mccl.h $(UCON64_STD_H)
|
|
backup/mcd.o: backup/mcd.h $(UCON64_STD_H)
|
|
backup/md-pro.o: backup/md-pro.h backup/tototek.h $(UCON64_STD_H)
|
|
backup/mgd.o: backup/mgd.h $(UCON64_STD_H)
|
|
backup/msg.o: backup/msg.h backup/ffe.h $(UCON64_STD_H)
|
|
backup/pce-pro.o: backup/pce-pro.h backup/tototek.h $(UCON64_STD_H)
|
|
backup/pl.o: backup/pl.h $(UCON64_STD_H)
|
|
backup/psxpblib.o: backup/psxpblib.h $(UCON64_STD_H)
|
|
backup/sflash.o: backup/sflash.h backup/tototek.h $(UCON64_STD_H)
|
|
backup/smc.o: backup/smc.h backup/ffe.h $(UCON64_STD_H)
|
|
backup/smd.o: backup/smd.h backup/ffe.h $(UCON64_STD_H)
|
|
backup/smsgg-pro.o: backup/smsgg-pro.h backup/tototek.h $(UCON64_STD_H)
|
|
backup/swc.o: backup/swc.h backup/ffe.h console/snes.h $(UCON64_STD_H)
|
|
backup/tototek.o: backup/tototek.h $(UCON64_STD_H)
|
|
backup/ufo.o: backup/ufo.h $(UCON64_STD_H)
|
|
backup/yoko.o: backup/yoko.h $(UCON64_STD_H)
|
|
backup/z64.o: backup/z64.h $(UCON64_STD_H)
|
|
patch/aps.o: patch/aps.h $(UCON64_STD_H)
|
|
patch/bsl.o: patch/bsl.h $(UCON64_STD_H)
|
|
patch/gg.o: patch/gg.h $(UCON64_STD_H)
|
|
patch/ips.o: patch/ips.h $(UCON64_STD_H)
|
|
patch/pal4u.o: patch/pal4u.h $(UCON64_STD_H)
|
|
patch/ppf.o: patch/ppf.h $(UCON64_STD_H)
|
|
patch/xps.o: patch/xps.h $(UCON64_STD_H)
|