]> git.sur5r.net Git - cc65/blobdiff - src/ca65/make/watcom.mak
Remember where each symbol was defined and where it was referenced. Write this
[cc65] / src / ca65 / make / watcom.mak
index e634ed4b7c4e6c50aac4d49d7ecfe69a820b9477..8760b0691a7f011f4def187114cfd70021d7ad22 100644 (file)
@@ -1,83 +1,82 @@
 #
-# CA65 Makefile for the Watcom compiler
+# CA65 Makefile for the Watcom compiler (using GNU make)
 #
 
 # ------------------------------------------------------------------------------
 # Generic stuff
 
-.AUTODEPEND
-.SUFFIXES      .ASM .C .CC .CPP
-.SWAP
+# Environment variables for the watcom compiler
+export WATCOM  = c:\\watcom
+export INCLUDE = $(WATCOM)\\h
 
-AR     = WLIB
-LD     = WLINK
+# We will use the windows compiler under linux (define as empty for windows)
+export WINEDEBUG=fixme-all
+WINE = wine
 
-!if !$d(TARGET)
-!if $d(__OS2__)
-TARGET = OS2
-!else
-TARGET = NT
-!endif
-!endif
-
-# target specific macros.
-!if $(TARGET)==OS2
+# Programs
+AR             = $(WINE) wlib
+CC      = $(WINE) wcc386
+LD             = $(WINE) wlink
+WSTRIP = $(WINE) wstrip -q
 
-# --------------------- OS2 ---------------------
-SYSTEM = os2v2
-CC = WCC386
-CCCFG  = -bt=$(TARGET) -d1 -onatx -zp4 -5 -zq -w2
+LNKCFG  = ld.tmp
 
-!elif $(TARGET)==DOS32
+# Program arguments
+CFLAGS  = -d1 -obeilr -zp4 -5 -zq -w2 -i=..\\common
 
-# -------------------- DOS4G --------------------
-SYSTEM = dos4g
-CC = WCC386
-CCCFG  = -bt=$(TARGET) -d1 -onatx -zp4 -5 -zq -w2
+# Target files
+EXE    = ca65.exe
 
-!elif $(TARGET)==DOS
+# Create NT programs by default
+ifndef TARGET
+TARGET = NT
+endif
 
-# --------------------- DOS ---------------------
-SYSTEM = dos
-CC = WCC
-CCCFG  = -bt=$(TARGET) -d1 -onatx -zp2 -2 -ml -zq -w2
+# --------------------- OS2 ---------------------
+ifeq ($(TARGET),OS2)
+SYSTEM  = os2v2
+CFLAGS  += -bt=$(TARGET)
+endif
 
-!elif $(TARGET)==NT
+# -------------------- DOS4G --------------------
+ifeq ($(TARGET),DOS32)
+SYSTEM  = dos4g
+CFLAGS  += -bt=$(TARGET)
+endif
 
 # --------------------- NT ----------------------
-SYSTEM = nt
-CC = WCC386
-CCCFG  = -bt=$(TARGET) -d1 -onatx -zp4 -5 -zq -w2
-
-!else
-!error
-!endif
-
-# Add the include dir
-CCCFG  = $(CCCFG) -i=..\common
-
+ifeq ($(TARGET),NT)
+SYSTEM  = nt
+CFLAGS  += -bt=$(TARGET)
+endif
 
 # ------------------------------------------------------------------------------
 # Implicit rules
 
-.c.obj:
-  $(CC) $(CCCFG) $<
+%.obj:  %.c
+       $(CC) $(CFLAGS) -fo=$@ $^
 
 
 # ------------------------------------------------------------------------------
 # All library OBJ files
 
-OBJS =         condasm.obj     \
+OBJS =         anonname.obj    \
+        asserts.obj     \
+        condasm.obj    \
        dbginfo.obj     \
-       ea.obj          \
+       ea65.obj        \
+        easw16.obj      \
+        enum.obj        \
        error.obj       \
        expr.obj        \
+       feature.obj     \
        filetab.obj     \
        fragment.obj    \
        global.obj      \
        incpath.obj     \
                instr.obj       \
        istack.obj      \
+       lineinfo.obj    \
        listing.obj     \
        macpack.obj     \
        macro.obj       \
@@ -89,64 +88,49 @@ OBJS =      condasm.obj     \
        pseudo.obj      \
        repeat.obj      \
        scanner.obj     \
+        segment.obj     \
+        sizeof.obj      \
+        span.obj        \
+        spool.obj       \
+        struct.obj      \
+        studyexpr.obj   \
+       symbol.obj      \
+        symentry.obj    \
        symtab.obj      \
-       target.obj      \
+        token.obj       \
        toklist.obj     \
        ulabel.obj
 
-LIBS = ..\common\common.lib
+LIBS = ../common/common.lib
 
 
 # ------------------------------------------------------------------------------
 # Main targets
 
-all:           ca65
-
-ca65:          ca65.exe
+all:           $(EXE)
 
 
 # ------------------------------------------------------------------------------
 # Other targets
 
 
-ca65.exe:      $(OBJS) $(LIBS)
-       $(LD) system $(SYSTEM) @&&|
-DEBUG ALL
-OPTION QUIET
-NAME $<
-FILE condasm.obj
-FILE dbginfo.obj
-FILE ea.obj
-FILE error.obj
-FILE expr.obj
-FILE filetab.obj
-FILE fragment.obj
-FILE global.obj
-FILE incpath.obj
-FILE instr.obj
-FILE istack.obj
-FILE listing.obj
-FILE macpack.obj
-FILE macro.obj
-FILE main.obj
-FILE nexttok.obj
-FILE objcode.obj
-FILE objfile.obj
-FILE options.obj
-FILE pseudo.obj
-FILE repeat.obj
-FILE scanner.obj
-FILE symtab.obj
-FILE target.obj
-FILE toklist.obj
-FILE ulabel.obj
-LIBRARY ..\common\common.lib
-|
+$(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)
 
 clean:
-       @if exist *.obj del *.obj
-       @if exist ca65.exe del ca65.exe
+       @rm -f *~ core
+
+zap:   clean
+       @rm -f $(OBJS) $(EXE) $(EXE:.exe=.map)
 
 strip:
-       @-wstrip ca65.exe
+       @-$(WSTRIP) $(EXE)