2005-06-29 00:31:49 +00:00
|
|
|
# $Header: /home/stephena/STELLA_CVS-to-SVN/stella/Makefile,v 1.3 2005-06-29 00:31:48 urchlay Exp $
|
2005-06-28 18:56:49 +00:00
|
|
|
|
|
|
|
#######################################################################
|
|
|
|
# Default compilation parameters. Normally don't edit these #
|
|
|
|
#######################################################################
|
|
|
|
|
|
|
|
srcdir ?= .
|
|
|
|
|
|
|
|
DEFINES :=
|
|
|
|
LDFLAGS :=
|
|
|
|
INCLUDES :=
|
|
|
|
LIBS :=
|
|
|
|
OBJS :=
|
|
|
|
|
|
|
|
MODULES :=
|
|
|
|
MODULE_DIRS :=
|
|
|
|
|
|
|
|
# Load the make rules generated by configure
|
|
|
|
include config.mak
|
|
|
|
|
|
|
|
# Uncomment this for stricter compile time code verification
|
|
|
|
# CXXFLAGS+= -Werror
|
|
|
|
|
|
|
|
CXXFLAGS:= $(CXXFLAGS)
|
2005-06-29 00:31:49 +00:00
|
|
|
CXXFLAGS+= -O2 -Wall -Wuninitialized -Wno-multichar -Wunused
|
2005-06-28 18:56:49 +00:00
|
|
|
# Even more warnings...
|
|
|
|
#CXXFLAGS+= -pedantic -Wpointer-arith -Wcast-qual -Wconversion
|
|
|
|
#CXXFLAGS+= -Wshadow -Wimplicit -Wundef -Wnon-virtual-dtor
|
|
|
|
#CXXFLAGS+= -Wno-reorder -Wwrite-strings -fcheck-new -Wctor-dtor-privacy
|
|
|
|
|
|
|
|
#######################################################################
|
|
|
|
# Misc stuff - you should never have to edit this #
|
|
|
|
#######################################################################
|
|
|
|
|
|
|
|
EXECUTABLE := stella$(EXEEXT)
|
|
|
|
|
2005-06-28 23:18:16 +00:00
|
|
|
all: $(EXECUTABLE)
|
|
|
|
|
|
|
|
|
|
|
|
######################################################################
|
|
|
|
# Various minor settings
|
|
|
|
######################################################################
|
|
|
|
|
|
|
|
# Files that are to be included in the archive built by "make dist"
|
|
|
|
DISTFILES := \
|
|
|
|
Makefile Makefile.common \
|
|
|
|
AUTHORS NEWS README COPYING scummvm.6 Info.plist \
|
|
|
|
scumm.dsp scummvm.dsp scummvm.dsw scummvm.icns scummvm.ico \
|
|
|
|
scummvm.proj scummvm.rc scummvm.spec scummvm.xpm simon.dsp sky.dsp \
|
|
|
|
scummvm.vcproj scumm.vcproj simon.vcproj sky.vcproj scummvm.sln
|
|
|
|
|
|
|
|
# The dist file name
|
|
|
|
ZIPFILE := scummvm-`date '+%Y-%m-%d'`.zip
|
|
|
|
|
|
|
|
# The name for the directory used for dependency tracking
|
|
|
|
DEPDIR := .deps
|
|
|
|
|
|
|
|
|
|
|
|
######################################################################
|
|
|
|
# Module settings
|
|
|
|
######################################################################
|
|
|
|
|
|
|
|
MODULES := $(MODULES)
|
|
|
|
|
|
|
|
# After the game specific modules follow the shared modules
|
|
|
|
MODULES += \
|
|
|
|
src/emucore \
|
|
|
|
src/emucore/m6502 \
|
|
|
|
src/gui \
|
|
|
|
src/common
|
|
|
|
|
|
|
|
######################################################################
|
|
|
|
# The build rules follow - normally you should have no need to
|
|
|
|
# touch whatever comes after here.
|
|
|
|
######################################################################
|
|
|
|
|
|
|
|
# Concat DEFINES and INCLUDES to form the CPPFLAGS
|
|
|
|
CPPFLAGS:= $(DEFINES) $(INCLUDES)
|
|
|
|
|
|
|
|
# Include the build instructions for all modules
|
|
|
|
-include $(addprefix $(srcdir)/, $(addsuffix /module.mk,$(MODULES)))
|
|
|
|
|
|
|
|
# Depdir information
|
|
|
|
DEPDIRS = $(addsuffix /$(DEPDIR),$(MODULE_DIRS))
|
|
|
|
DEPFILES =
|
|
|
|
|
|
|
|
# The build rule for the Stella executable
|
|
|
|
$(EXECUTABLE): $(OBJS)
|
|
|
|
$(CXX) $(LDFLAGS) $(PRE_OBJS_FLAGS) $+ $(POST_OBJS_FLAGS) $(LIBS) -o $@
|
|
|
|
|
|
|
|
distclean: clean
|
|
|
|
$(RM_REC) $(DEPDIRS)
|
|
|
|
$(RM) build.rules config.h config.mak config.log
|
|
|
|
|
|
|
|
clean:
|
|
|
|
$(RM) $(OBJS) $(EXECUTABLE)
|
|
|
|
|
|
|
|
.PHONY: all clean dist distclean plugins
|
|
|
|
|
|
|
|
# Old (dumb) compile & dependcy rules
|
|
|
|
#INCS = scumm/scumm.h common/scummsys.h common/stdafx.h
|
|
|
|
#.cpp.o:
|
|
|
|
# $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c $(<) -o $*.o
|
|
|
|
#$(OBJS): $(INCS)
|
|
|
|
|
|
|
|
.SUFFIXES: .cxx
|
|
|
|
ifndef HAVE_GCC3
|
|
|
|
# If you use GCC, disable the above and enable this for intelligent
|
|
|
|
# dependency tracking.
|
|
|
|
.cxx.o:
|
|
|
|
$(MKDIR) $(*D)/$(DEPDIR)
|
|
|
|
$(CXX) -Wp,-MMD,"$(*D)/$(DEPDIR)/$(*F).d2" $(CXXFLAGS) $(CPPFLAGS) -c $(<) -o $*.o
|
|
|
|
$(ECHO) "$(*D)/" > $(*D)/$(DEPDIR)/$(*F).d
|
|
|
|
$(CAT) "$(*D)/$(DEPDIR)/$(*F).d2" >> "$(*D)/$(DEPDIR)/$(*F).d"
|
|
|
|
$(RM) "$(*D)/$(DEPDIR)/$(*F).d2"
|
|
|
|
else
|
|
|
|
# If you even have GCC 3.x, you can use this build rule, which is safer; the above
|
|
|
|
# rule can get you into a bad state if you Ctrl-C at the wrong moment.
|
|
|
|
# Also, with this GCC inserts additional dummy rules for the involved headers,
|
|
|
|
# which ensures a smooth compilation even if said headers become obsolete.
|
|
|
|
.cxx.o:
|
|
|
|
$(MKDIR) $(*D)/$(DEPDIR)
|
|
|
|
$(CXX) -Wp,-MMD,"$(*D)/$(DEPDIR)/$(*F).d",-MQ,"$@",-MP $(CXXFLAGS) $(CPPFLAGS) -c $(<) -o $*.o
|
|
|
|
endif
|
|
|
|
|
|
|
|
ifdef HAVE_NASM
|
|
|
|
.SUFFIXES: .asm
|
|
|
|
|
|
|
|
.asm.o:
|
|
|
|
$(NASM) -O1 $(NASMFLAGS) -g -o $*.o $(<)
|
|
|
|
endif
|
|
|
|
|
|
|
|
# Include the dependency tracking files. We add /dev/null at the end
|
|
|
|
# of the list to avoid a warning/error if no .d file exist
|
|
|
|
-include $(wildcard $(addsuffix /*.d,$(DEPDIRS))) /dev/null
|
2005-06-28 18:56:49 +00:00
|
|
|
|
|
|
|
# check if configure has been run or has been changed since last run
|
|
|
|
config.mak: $(srcdir)/configure
|
|
|
|
@echo "You need to run ./configure before you can run make"
|
|
|
|
@echo "Either you haven't run it before or it has changed."
|
|
|
|
@exit 1
|
|
|
|
|
|
|
|
install: all
|
|
|
|
$(INSTALL) -d "$(DESTDIR)$(BINDIR)"
|
|
|
|
$(INSTALL) -c -s -m 755 "$(srcdir)/scummvm$(EXEEXT)" "$(DESTDIR)$(BINDIR)/scummvm$(EXEEXT)"
|
|
|
|
$(INSTALL) -d "$(DESTDIR)$(MANDIR)/man6/"
|
|
|
|
$(INSTALL) -c -m 644 "$(srcdir)/scummvm.6" "$(DESTDIR)$(MANDIR)/man6/scummvm.6"
|
|
|
|
$(INSTALL) -d "$(DESTDIR)$(PREFIX)/share/pixmaps/"
|
|
|
|
$(INSTALL) -c -m 644 "$(srcdir)/scummvm.xpm" "$(DESTDIR)$(PREFIX)/share/pixmaps/scummvm.xpm"
|
|
|
|
$(INSTALL) -d "$(DESTDIR)$(PREFIX)/share/doc/scummvm/"
|
|
|
|
$(INSTALL) -c -m 644 "$(srcdir)/AUTHORS" "$(srcdir)/COPYING" "$(srcdir)/NEWS" "$(srcdir)/README" "$(DESTDIR)$(PREFIX)/share/doc/scummvm/"
|
|
|
|
|
|
|
|
uninstall:
|
|
|
|
rm -f "$(DESTDIR)$(BINDIR)/scummvm$(EXEEXT)"
|
|
|
|
rm -f "$(DESTDIR)$(MANDIR)/man6/scummvm.6"
|
|
|
|
rm -f "$(DESTDIR)$(PREFIX)/share/pixmaps/scummvm.xpm"
|
|
|
|
rm -rf "$(DESTDIR)$(PREFIX)/share/doc/scummvm/"
|
|
|
|
|
|
|
|
scummvmico.o: scummvm.ico
|
|
|
|
windres scummvm.rc scummvmico.o
|
|
|
|
|
|
|
|
dist:
|
|
|
|
$(RM) $(ZIPFILE)
|
|
|
|
$(ZIP) $(ZIPFILE) $(DISTFILES)
|
|
|
|
|
|
|
|
deb:
|
|
|
|
ln -sf dists/debian;
|
|
|
|
debian/prepare
|
|
|
|
fakeroot debian/rules binary
|
|
|
|
|
2005-06-28 23:18:16 +00:00
|
|
|
|
2005-06-28 18:56:49 +00:00
|
|
|
# Special target to create a application wrapper for Mac OS X
|
|
|
|
bundle_name = ScummVM.app
|
|
|
|
bundle: scummvm-static
|
|
|
|
mkdir -p $(bundle_name)/Contents/MacOS
|
|
|
|
mkdir -p $(bundle_name)/Contents/Resources
|
|
|
|
echo "APPL????" > $(bundle_name)/Contents/PkgInfo
|
|
|
|
cp $(srcdir)/Info.plist $(bundle_name)/Contents/
|
|
|
|
cp $(srcdir)/scummvm.icns $(bundle_name)/Contents/Resources/
|
|
|
|
cp scummvm-static $(bundle_name)/Contents/MacOS/scummvm
|
|
|
|
$(srcdir)/tools/credits.pl --rtf > $(bundle_name)/Contents/Resources/Credits.rtf
|
|
|
|
strip $(bundle_name)/Contents/MacOS/scummvm
|
|
|
|
|
|
|
|
# location of additional libs for OS X usually /sw/ for fink or
|
|
|
|
# /opt/local/ for darwinports
|
|
|
|
OSXOPT=/sw
|
|
|
|
# Special target to create a static linked binary for Mac OS X
|
|
|
|
scummvm-static: $(OBJS)
|
|
|
|
$(CXX) $(LDFLAGS) -o scummvm-static $(OBJS) \
|
|
|
|
`sdl-config --static-libs` \
|
|
|
|
$(OSXOPT)/lib/libmad.a \
|
|
|
|
$(OSXOPT)/lib/libvorbisfile.a \
|
|
|
|
$(OSXOPT)/lib/libvorbis.a \
|
|
|
|
$(OSXOPT)/lib/libogg.a \
|
|
|
|
$(OSXOPT)/lib/libmpeg2.a \
|
|
|
|
$(OSXOPT)/lib/libFLAC.a \
|
|
|
|
-lz
|
|
|
|
|
|
|
|
# Special target to create a snapshot disk image for Mac OS X
|
|
|
|
osxsnap: bundle
|
|
|
|
mkdir ScummVM-snapshot
|
|
|
|
cp AUTHORS ./ScummVM-snapshot/ScummVM\ Authors
|
|
|
|
cp COPYING ./ScummVM-snapshot/License
|
|
|
|
cp NEWS ./ScummVM-snapshot/News
|
|
|
|
cp README ./ScummVM-snapshot/ScummVM\ ReadMe
|
|
|
|
/Developer/Tools/SetFile -t TEXT -c ttxt ./ScummVM-snapshot/*
|
|
|
|
/Developer/Tools/CpMac -r $(bundle_name) ./ScummVM-snapshot/
|
|
|
|
hdiutil create -ov -format UDZO -srcfolder ScummVM-snapshot ScummVM-snapshot.dmg
|
|
|
|
rm -rf ScummVM-snapshot
|
|
|
|
|
|
|
|
# Special target to create a win32 snapshot binary
|
|
|
|
win32dist: scummvm$(EXEEXT)
|
|
|
|
mkdir -p $(WIN32PATH)
|
|
|
|
strip scummvm.exe -o $(WIN32PATH)/scummvm$(EXEEXT)
|
|
|
|
cp AUTHORS $(WIN32PATH)/AUTHORS.txt
|
|
|
|
cp COPYING $(WIN32PATH)/COPYING.txt
|
|
|
|
cp NEWS $(WIN32PATH)/NEWS.txt
|
|
|
|
cp README $(WIN32PATH)/README.txt
|
|
|
|
cp /usr/local/README-SDL.txt $(WIN32PATH)
|
|
|
|
cp /usr/local/bin/SDL.dll $(WIN32PATH)
|
|
|
|
u2d $(WIN32PATH)/*.txt
|
|
|
|
|
|
|
|
|
|
|
|
.PHONY: deb bundle test osxsnap win32dist dist install uninstall
|