export INCLUDE = $(WATCOM)\\h
# We will use the windows compiler under linux (define as empty for windows)
-WINE = wine --
+export WINEDEBUG=fixme-all
+WINE = wine
# Programs
-AR = $(WINE) WLIB
-CC = $(WINE) WCC386
-LD = $(WINE) WLINK
-WSTRIP = $(WINE) WSTRIP
+AR = $(WINE) wlib
+CC = $(WINE) wcc386
+LD = $(WINE) wlink
+WSTRIP = $(WINE) wstrip -q
LNKCFG = ld.tmp
# Program arguments
-CFLAGS = -d1 -onatx -zp4 -5 -zq -w2 -i=..\\common
+CFLAGS = -d1 -obeilr -zp4 -5 -zq -w2 -i=..\\common
# Target files
EXE = cc65.exe
+# Determine the svn version number if possible
+ifneq "$(shell which svnversion 2>/dev/null)" ""
+ifneq "$(wildcard .svn)" ""
+SVNVERSION=$(shell svnversion)
+else
+SVNVERSION=unknown
+endif
+else
+SVNVERSION=unknown
+endif
+
# Create NT programs by default
ifndef TARGET
TARGET = NT
# Implicit rules
%.obj: %.c
- $(CC) $(CFLAGS) $^
+ $(CC) $(CFLAGS) -fo=$@ $^
# ------------------------------------------------------------------------------
coptcmp.obj \
coptind.obj \
coptneg.obj \
+ coptptrload.obj \
coptpush.obj \
coptsize.obj \
coptstop.obj \
error.obj \
expr.obj \
exprdesc.obj \
- exprnode.obj \
funcdesc.obj \
function.obj \
global.obj \
macrotab.obj \
main.obj \
opcodes.obj \
+ output.obj \
preproc.obj \
pragma.obj \
reginfo.obj \
scanner.obj \
scanstrbuf.obj \
segments.obj \
+ shiftexpr.obj \
stackptr.obj \
+ standard.obj \
stdfunc.obj \
stdnames.obj \
stmt.obj \
+ svnversion.obj \
swstmt.obj \
symentry.obj \
symtab.obj \
# ------------------------------------------------------------------------------
# Main targets
-all: $(EXE)
+all: svnversion $(EXE)
# ------------------------------------------------------------------------------
$(EXE): $(OBJS) $(LIBS)
@echo "DEBUG ALL" > $(LNKCFG)
@echo "OPTION QUIET" >> $(LNKCFG)
+ @echo "OPTION MAP" >> $(LNKCFG)
+ @echo "OPTION STACK=65536" >> $(LNKCFG)
@echo "NAME $@" >> $(LNKCFG)
@for i in $(OBJS); do echo "FILE $${i}"; done >> $(LNKCFG)
@for i in $(LIBS); do echo "LIBRARY $${i}"; done >> $(LNKCFG)
@$(LD) system $(SYSTEM) @$(LNKCFG)
@rm $(LNKCFG)
+.PHONY: svnversion
+svnversion:
+ @$(RM) svnversion.c
+ @echo "/* This file is auto-generated - do not modify! */" >> svnversion.c
+ @echo "" >> svnversion.c
+ @echo "const char SVNVersion[] = \"$(SVNVERSION)\";" >> svnversion.c
+
+svnversion.c: svnversion
+
clean:
@rm -f *~ core
zap: clean
- @rm -f *.obj $(EXE)
+ @rm -f $(OBJS) $(EXE) $(EXE:.exe=.map) svnversion.c
strip:
@-$(WSTRIP) $(EXE)