Initial commit.
[amiga/xmodule.git] / config.mk
1 ##
2 ## $Id:$
3 ##
4 ## Build environment configuration parameters
5 ## Copyright (C) 1999 by Bernardo Innocenti
6
7 ###########################################################
8 # Package configuration
9 ###########################################################
10
11 # set to OS30_ONLY to leave out support for old V37
12 # set to ANY_OS to make an executable for V37 with V39 support
13 #
14 OSVER := OS30_ONLY
15
16 # CPU to compile for (eg: "68020").
17 #
18 CPU := 68020
19
20 # Compiler to use. Possible options are:
21 # sc     - SAS/C 6.58 or better
22 # gcc    - gcc 2.7.2 or EGCS 1.1b
23 # vbcc   - Not yet supported
24 # stormc - Not yet supported
25 #
26 COMPILER := gcc
27
28 # Set to 1 to build debug executables
29 #
30 DEBUG := 0
31
32 # Minimum stack size to allocate
33 #
34 STACKSIZE := 16384
35
36 ###########################################################
37 # Paths
38 ###########################################################
39 #
40 PROJNAME        := XModule
41
42 ifeq ($(COMPILER),gcc)
43 TOP                     := /SC/src/xm
44 else
45 TOP                     := SC:src/xm
46 endif
47
48 OBJDIR          := $(TOP)/obj
49 INCDIR          := $(TOP)/include
50 DISTPREFIX      := $(TOP)/dist
51 ARCNAME         := $(DISTPREFIX)/$(PROJNAME).lzx
52 SRCARCNAME      := $(DISTPREFIX)/$(PROJNAME)_src.lzx
53
54 ###########################################################
55 # Tools used in the Makefiles
56 ###########################################################
57 #
58 MAKEINFO        := GG:bin/makeinfo
59 FD2PRAGMA       := fd2pragma
60 FLEXCAT         := FlexCat
61 ARCHIVER        := lzx -3 -e -r a
62
63 ifeq ($(COMPILER),sc)
64         CC              := sc
65         AS              := PhxAss
66         OBJCONV := echo >NIL:
67         LD              := PhxLnk
68         CP              := copy CLONE
69         MV              := rename
70         RM              := delete
71 endif
72
73 ifeq  ($(COMPILER),gcc)
74         CC              := gcc
75         AS              := PhxAss
76         OBJCONV := hunk2aout
77         LD              := gcc
78         CP              := cp -p
79         MV              := mv
80         RM              := rm
81 endif
82
83 ###########################################################
84 # SAS/C compiler, assembler and linker flags
85 ###########################################################
86 #
87 ifeq ($(COMPILER),sc)
88         CMN_CFLAGS      := CODE=FAR PARM=REGISTERS STRMERGE STRINGSCONST NOSTKCHK AFP \
89                 UTILLIB MCCONS NOMINC NOLINK CNEST INCDIR=$(TOP) INCDIR=$(INCDIR)
90         OPT_CFLAGS      := OPTIMIZE OPTTIME OPTINLINELOCAL
91         DBG_CFLAGS      := DEBUG=FULLFLUSH DEF DEBUG
92         CC_OUT  := OBJNAME
93
94         CMN_ASFLAGS     := SMALLDATA SMALLCODE ALIGN MACHINE=$(CPU) \
95                 INCPATH=INCLUDE:,$(INCDIR) NOEXE QUIET
96         OPT_ASFLAGS     := OPT !
97         DBG_ASFLAGS     := SYMDEBUG LINEDEBUG SET "DEBUG"
98
99         CMN_LDFLAGS     := SMALLCODE SMALLDATA DEFINE \
100                  "__CXM33=__UCXM33,__CXD33=__UCXD33,__CXM22=__UCXM22,__CXD22=__UCXD22"
101         OPT_LDFLAGS     := NODEBUG
102         DBG_LDFLAGS     := NOSHORTRELOCS
103
104         CMN_LIBS        := LIB:sc.lib LIB:small.lib
105         OPT_LIBS        :=
106         DBG_LIBS        := LIB:debug.lib
107
108 # GST usage must be disabled due to bugs in SAS/C 6.58
109 #       GST                     := $(OBJDIR)/$(PROJNAME).gst
110 #       CMN_CFLAGS += GST=$(GST)
111
112 # Old flags used with slink:
113 #       CMN_LDFLAGS += SMALLCODE SMALLDATA NOALVS NOICONS XREF \
114 #               DEFINE __CXM33=__UCXM33 DEFINE __CXD33=__UCXD33 \
115 #               DEFINE __CXM22=__UCXM22 DEFINE __CXD22=__UCXD22
116 #       DBG_LDFLAGS += BATCH ADDSYM
117
118 endif
119
120
121 ###########################################################
122 # GCC compiler, assembler and linker flags
123 ###########################################################
124 #
125 ifeq ($(COMPILER),gcc)
126         CMN_CFLAGS := -c -Wall -W -Wundef -Wimplicit -Wreturn-type \
127                 -m$(CPU) -D$(OSVER) -I$(INCDIR) -I$(TOP) -I/gg/include -I/include
128         OPT_CFLAGS := -O2 -msmall-code -mregparm -fomit-frame-pointer \
129                 -funroll-loops -fstrict-aliasing -finline-functions \
130                 -fno-implement-inlines
131         DBG_CFLAGS := -DDEBUG -g
132         CC_OUT  := -o
133
134         CMN_ASFLAGS     := SMALLDATA SMALLCODE ALIGN MACHINE=$(CPU) \
135                 INCPATH=INCLUDE:,$(INCDIR) NOEXE QUIET
136         OPT_ASFLAGS     := OPT !
137         DBG_ASFLAGS     := SYMDEBUG LINEDEBUG SET "DEBUG"
138
139         OPT_LDFLAGS := -s
140         DBG_LDFLAGS :=
141         CMN_LDFLAGS :=
142 endif
143
144 ###########################################################
145 # Build flags for Debug/Release version
146 ###########################################################
147 #
148 ifeq ($(DEBUG),1)
149         CFLAGS  := $(CMN_CFLAGS) $(DBG_CFLAGS)
150         ASFLAGS := $(CMN_ASFLAGS) $(DBG_ASFLAGS)
151         LDFLAGS := $(CMN_LDFLAGS) $(DBG_LDFLAGS)
152         LIBS    := $(CMN_LIBS) $(DBG_LIBS)
153 else
154         CFLAGS  := $(CMN_CFLAGS) $(OPT_CFLAGS)
155         ASFLAGS := $(CMN_ASFLAGS) $(OPT_ASFLAGS)
156         LDFLAGS := $(CMN_LDFLAGS) $(OPT_LDFLAGS)
157         LIBS    := $(CMN_LIBS) $(OPT_LIBS)
158 endif
159
160 ###########################################################
161 # GNU make quirks
162 ###########################################################
163 #
164 # clear implicit rules for known suffixes such as .c and .o
165 .SUFFIXES: