1 # You may call this makefile with:
3 # where target is your crosscompiler prefix (like ppc-morphos,
5 # Note that you may omit OS specification, in this case your host OS will be detected
7 # Evaluate explicit target specification
10 HOST
:= $(subst -, ,$(OS
))
11 HOST_CPU
:= $(word 1,$(HOST
))
12 HOST_OS
:= $(word 2,$(HOST
))
15 HOST_OS
:= $(shell uname
)
18 # Translate canonical OS name to lowercase
19 ifeq ($(HOST_OS
),AROS
)
21 # TODO: detect CPU here for self-hosted build under AROS
23 ifeq ($(HOST_OS
),MorphOS
)
28 # target-dependent options
29 ifeq ($(HOST_OS
),aros
)
31 SYSLIB
:= -larossupport
-larosm
-lmui
-lrom
34 SYSLIB
:= -lc
-ldebug
-lmath
36 ifeq ($(HOST_OS
),morphos
)
37 ALIB
:= -labox
-laboxstubs
41 ifeq ($(HOST_CPU
),ppc
)
57 OBJDUMP
= $(PREFIX
)objdump
66 CFLAGS
:= $(USER_CFLAGS
) -Wall
$(NOIXEMUL
) $(CPU
) -I.
-idirafter .
/include -I.
/classes
-I.
/tbLib
-c
67 LFLAGS
= $(NOIXEMUL
) -nostartfiles
71 # $(PROJECT).o _has_ to be the first module !!! (Because we use no
74 OBJECTS
=$(OBJDIR
)/startup.o \
76 $(OBJDIR
)/scout_logo.o \
77 $(OBJDIR
)/scout_net.o \
78 $(OBJDIR
)/$(CLASSESDIR
)/fontdisplay_class.o \
79 $(OBJDIR
)/$(CLASSESDIR
)/port_button.o \
80 $(OBJDIR
)/$(CLASSESDIR
)/scout_about.o \
81 $(OBJDIR
)/$(CLASSESDIR
)/scout_allocations.o \
82 $(OBJDIR
)/$(CLASSESDIR
)/scout_arexx.o \
83 $(OBJDIR
)/$(CLASSESDIR
)/scout_asm.o \
84 $(OBJDIR
)/$(CLASSESDIR
)/scout_assigns.o \
85 $(OBJDIR
)/$(CLASSESDIR
)/scout_audiomode.o \
86 $(OBJDIR
)/$(CLASSESDIR
)/scout_audiomode_detail.o \
87 $(OBJDIR
)/$(CLASSESDIR
)/scout_catalogs.o \
88 $(OBJDIR
)/$(CLASSESDIR
)/scout_classes.o \
89 $(OBJDIR
)/$(CLASSESDIR
)/scout_classes_detail.o \
90 $(OBJDIR
)/$(CLASSESDIR
)/scout_commands.o \
91 $(OBJDIR
)/$(CLASSESDIR
)/scout_commodity.o \
92 $(OBJDIR
)/$(CLASSESDIR
)/scout_commodity_detail.o \
93 $(OBJDIR
)/$(CLASSESDIR
)/scout_customclasses.o \
94 $(OBJDIR
)/$(CLASSESDIR
)/scout_devices.o \
95 $(OBJDIR
)/$(CLASSESDIR
)/scout_devices_detail.o \
96 $(OBJDIR
)/$(CLASSESDIR
)/scout_expansions.o \
97 $(OBJDIR
)/$(CLASSESDIR
)/scout_expansions_detail.o \
98 $(OBJDIR
)/$(CLASSESDIR
)/scout_extras.o \
99 $(OBJDIR
)/$(CLASSESDIR
)/scout_flags.o \
100 $(OBJDIR
)/$(CLASSESDIR
)/scout_fonts.o \
101 $(OBJDIR
)/$(CLASSESDIR
)/scout_fonts_detail.o \
102 $(OBJDIR
)/$(CLASSESDIR
)/scout_functions.o \
103 $(OBJDIR
)/$(CLASSESDIR
)/scout_inputhandlers.o \
104 $(OBJDIR
)/$(CLASSESDIR
)/scout_inputhandlers_detail.o \
105 $(OBJDIR
)/$(CLASSESDIR
)/scout_interrupts.o \
106 $(OBJDIR
)/$(CLASSESDIR
)/scout_interrupts_detail.o \
107 $(OBJDIR
)/$(CLASSESDIR
)/scout_libraries.o \
108 $(OBJDIR
)/$(CLASSESDIR
)/scout_libraries_detail.o \
109 $(OBJDIR
)/$(CLASSESDIR
)/scout_locks.o \
110 $(OBJDIR
)/$(CLASSESDIR
)/scout_lowmemory.o \
111 $(OBJDIR
)/$(CLASSESDIR
)/scout_lowmemory_detail.o \
112 $(OBJDIR
)/$(CLASSESDIR
)/scout_main.o \
113 $(OBJDIR
)/$(CLASSESDIR
)/scout_memory.o \
114 $(OBJDIR
)/$(CLASSESDIR
)/scout_memory_detail.o \
115 $(OBJDIR
)/$(CLASSESDIR
)/scout_monitors.o \
116 $(OBJDIR
)/$(CLASSESDIR
)/scout_monitors_detail.o \
117 $(OBJDIR
)/$(CLASSESDIR
)/scout_monitorclass.o \
118 $(OBJDIR
)/$(CLASSESDIR
)/scout_monitorclass_detail.o \
119 $(OBJDIR
)/$(CLASSESDIR
)/scout_mount.o \
120 $(OBJDIR
)/$(CLASSESDIR
)/scout_mount_detail.o \
121 $(OBJDIR
)/$(CLASSESDIR
)/scout_oop.o \
122 $(OBJDIR
)/$(CLASSESDIR
)/scout_oop_detail.o \
123 $(OBJDIR
)/$(CLASSESDIR
)/scout_parentwindow.o \
124 $(OBJDIR
)/$(CLASSESDIR
)/scout_patches.o \
125 $(OBJDIR
)/$(CLASSESDIR
)/scout_ports.o \
126 $(OBJDIR
)/$(CLASSESDIR
)/scout_ports_detail.o \
127 $(OBJDIR
)/$(CLASSESDIR
)/scout_print.o \
128 $(OBJDIR
)/$(CLASSESDIR
)/scout_priority.o \
129 $(OBJDIR
)/$(CLASSESDIR
)/scout_resethandlers.o \
130 $(OBJDIR
)/$(CLASSESDIR
)/scout_resethandlers_detail.o \
131 $(OBJDIR
)/$(CLASSESDIR
)/scout_residents.o \
132 $(OBJDIR
)/$(CLASSESDIR
)/scout_residents_detail.o \
133 $(OBJDIR
)/$(CLASSESDIR
)/scout_resources.o \
134 $(OBJDIR
)/$(CLASSESDIR
)/scout_resources_detail.o \
135 $(OBJDIR
)/$(CLASSESDIR
)/scout_screenmode.o \
136 $(OBJDIR
)/$(CLASSESDIR
)/scout_screenmode_detail.o \
137 $(OBJDIR
)/$(CLASSESDIR
)/scout_semaphores.o \
138 $(OBJDIR
)/$(CLASSESDIR
)/scout_signal.o \
139 $(OBJDIR
)/$(CLASSESDIR
)/scout_system.o \
140 $(OBJDIR
)/$(CLASSESDIR
)/scout_tasks.o \
141 $(OBJDIR
)/$(CLASSESDIR
)/scout_tasks_detail.o \
142 $(OBJDIR
)/$(CLASSESDIR
)/scout_timer.o \
143 $(OBJDIR
)/$(CLASSESDIR
)/scout_vectors.o \
144 $(OBJDIR
)/$(CLASSESDIR
)/scout_version.o \
145 $(OBJDIR
)/$(CLASSESDIR
)/scout_windows.o \
146 $(OBJDIR
)/$(CLASSESDIR
)/scout_windows_detail.o \
147 $(OBJDIR
)/$(CLASSESDIR
)/scout_disassembler.o \
148 $(OBJDIR
)/$(CLASSESDIR
)/disassembler_button.o \
149 $(OBJDIR
)/$(CLASSESDIR
)/flags_button.o \
150 $(OBJDIR
)/$(CLASSESDIR
)/monitor_button.o \
151 $(OBJDIR
)/$(CLASSESDIR
)/task_button.o \
152 $(OBJDIR
)/hexdump.o \
153 $(OBJDIR
)/scout_cat.o \
154 $(OBJDIR
)/SmartReadArgs.o \
157 HEADERS
=system_headers.h startup.h scout.h \
158 scout_logo.h scout_net.h \
159 scout_defs.h scout_tags.h startup_defs.h \
160 $(CLASSESDIR
)/fontdisplay_class.h \
161 $(CLASSESDIR
)/port_button.h \
162 $(CLASSESDIR
)/scout_about.h \
163 $(CLASSESDIR
)/scout_allocations.h \
164 $(CLASSESDIR
)/scout_arexx.h \
165 $(CLASSESDIR
)/scout_asm.h \
166 $(CLASSESDIR
)/scout_assigns.h \
167 $(CLASSESDIR
)/scout_audiomode.h \
168 $(CLASSESDIR
)/scout_audiomode_detail.h \
169 $(CLASSESDIR
)/scout_catalogs.h \
170 $(CLASSESDIR
)/scout_classes.h \
171 $(CLASSESDIR
)/scout_classes_detail.h \
172 $(CLASSESDIR
)/scout_commands.h \
173 $(CLASSESDIR
)/scout_commodity.h \
174 $(CLASSESDIR
)/scout_commodity_detail.h \
175 $(CLASSESDIR
)/scout_customclasses.h \
176 $(CLASSESDIR
)/scout_devices.h \
177 $(CLASSESDIR
)/scout_devices_detail.h \
178 $(CLASSESDIR
)/scout_expansions.h \
179 $(CLASSESDIR
)/scout_expansions_detail.h \
180 $(CLASSESDIR
)/scout_extras.h \
181 $(CLASSESDIR
)/scout_flags.h \
182 $(CLASSESDIR
)/scout_fonts.h \
183 $(CLASSESDIR
)/scout_fonts_detail.h \
184 $(CLASSESDIR
)/scout_functions.h \
185 $(CLASSESDIR
)/scout_inputhandlers.h \
186 $(CLASSESDIR
)/scout_interrupts.h \
187 $(CLASSESDIR
)/scout_interrupts_detail.h \
188 $(CLASSESDIR
)/scout_libraries.h \
189 $(CLASSESDIR
)/scout_libraries_detail.h \
190 $(CLASSESDIR
)/scout_locks.h \
191 $(CLASSESDIR
)/scout_lowmemory.h \
192 $(CLASSESDIR
)/scout_lowmemory_detail.h \
193 $(CLASSESDIR
)/scout_main.h \
194 $(CLASSESDIR
)/scout_memory.h \
195 $(CLASSESDIR
)/scout_memory_detail.h \
196 $(CLASSESDIR
)/scout_mount.h \
197 $(CLASSESDIR
)/scout_mount_detail.h \
198 $(CLASSESDIR
)/scout_parentwindow.h \
199 $(CLASSESDIR
)/scout_patches.h \
200 $(CLASSESDIR
)/scout_ports.h \
201 $(CLASSESDIR
)/scout_ports_detail.h \
202 $(CLASSESDIR
)/scout_print.h \
203 $(CLASSESDIR
)/scout_priority.h \
204 $(CLASSESDIR
)/scout_resethandlers.h \
205 $(CLASSESDIR
)/scout_residents.h \
206 $(CLASSESDIR
)/scout_residents_detail.h \
207 $(CLASSESDIR
)/scout_resources.h \
208 $(CLASSESDIR
)/scout_resources_detail.h \
209 $(CLASSESDIR
)/scout_screenmode.h \
210 $(CLASSESDIR
)/scout_screenmode_detail.h \
211 $(CLASSESDIR
)/scout_semaphores.h \
212 $(CLASSESDIR
)/scout_signal.h \
213 $(CLASSESDIR
)/scout_system.h \
214 $(CLASSESDIR
)/scout_tasks.h \
215 $(CLASSESDIR
)/scout_tasks_detail.h \
216 $(CLASSESDIR
)/scout_timer.h \
217 $(CLASSESDIR
)/scout_vectors.h \
218 $(CLASSESDIR
)/scout_version.h \
219 $(CLASSESDIR
)/scout_windows.h \
220 $(CLASSESDIR
)/scout_windows_detail.h \
221 $(CLASSESDIR
)/scout_disassembler.h \
222 $(CLASSESDIR
)/disassembler_button.h \
223 $(CLASSESDIR
)/flags_button.h \
224 $(CLASSESDIR
)/task_button.h \
230 LIBS
= -L.
/netlib
-L.
/tbLib
-L.
/lib
$(ALIB
) $(SYSLIB
) -ltblib
232 all: $(OBJDIR
) $(HEADERS
) $(TARGET
)
236 @mkdir
$(OBJDIR
)/$(CLASSESDIR
)
239 $(CC
) $(CFLAGS
) $(OPTIMIZE
) $(DEFINE
) $< -o
$@
241 $(LOCALE
)/%.catalog
: $(LOCALE
)/%.ct
242 flexcat
$(LOCALE
)/scout.cd
$< catalog
$@ flush
244 $(TARGET
): $(OBJECTS
) tbLib
/libtblib.a
245 $(LD
) $(OBJECTS
) -o
$@.debug
$(LIBS
) $(LFLAGS
)
246 $(STRIP
) -R.comment
-R.sdata2
-S
$@.debug
-o
$@
249 scout_cat.h
: $(LOCALE
)/scout.cd
250 flexcat locale
/scout.cd scout_cat.h
=C_h.sd scout_cat.c
=C_c.sd
252 $(OBJDIR
)/scout_cat.o
: scout_cat.h
254 $(OBJDIR
)/$(CLASSESDIR
)/scout_customclasses.o
: $(CLASSESDIR
)/scout_customclasses.c
255 $(CC
) $(CFLAGS
) $(OPTIMIZE
) $(DEFINE
) $< -o
$@
257 $(OBJDIR
)/$(CLASSESDIR
)/scout_about.o
: $(CLASSESDIR
)/scout_about.c
$(CLASSESDIR
)/scout_version.h Scout_rev.h
258 $(CC
) $(CFLAGS
) $(OPTIMIZE
) $(DEFINE
) $< -o
$@
260 $(OBJDIR
)/$(CLASSESDIR
)/scout_version.o
: $(CLASSESDIR
)/scout_version.c
$(CLASSESDIR
)/scout_version.h Scout_rev.h
261 $(CC
) $(CFLAGS
) $(OPTIMIZE
) $(DEFINE
) $< -o
$@
263 $(OBJDIR
)/all_gcc.o
: all_gcc.c
$(EXTRASRC
)/init_inet_daemon.c
$(EXTRASRC
)/vasprintf.c
266 @cd tbLib
; make OS
=$(OS
) USER_CFLAGS
=$(USER_CFLAGS
)
269 -$(RM
) $(OBJDIR
)/*.o
$(OBJDIR
)/$(CLASSESDIR
)/*.o
$(TARGET
) $(TARGET
).debug
$(TARGET
).dump
275 bumprev2
$(VERSION
) $(PROJECT
)
278 @eval
`type $(PROJECT)_rev.rev`-1 >t
:$(PROJECT
)_rev.rev
279 @copy t
:$(PROJECT
)_rev.rev
$(PROJECT
)_rev.rev
280 @delete
>nil
: t
:$(PROJECT
)_rev.rev
284 $(OBJDUMP
) --section-headers
--all-headers
--reloc
--syms
--disassemble-all
$(TARGET
).debug
>$(TARGET
).dump
287 copy
$(PROJECT
) Work
:Debug
/Scout
290 cvs
-q tag V
$(VERSION
)_
`type $(PROJECT)_rev.rev`