forwarding build fix when MUIA_Scrollgroup_AutoBars is defined (NicJA).
[AROS-Contrib.git] / scalos / main / makefile
blob3faf07f8e799c0de18038c668746f961fd0b6653
1 # makefile for Scalos +jl+
2 # $Date$
3 # $Revision$
4 # using SAS/C
6 #############################################################
8 SUBDIRMAKE = $(MAKE) -s -C
10 #############################################################
12 .PHONY: clean install nodebug
14 #############################################################
16 SVNVERSION = $(shell svnversion -n)
17 CATCOMP = CatComp
18 FLEXCAT = FlexCat
19 CHEADERS = scalos_structures.h variables.h functions.h debug.h Semaphores.h wrappers.h \
20 $(INT64_DIR)/int64.h ../include/scalos/scalos.h ../include/scalosdebug.h
21 LOCALE_HEADERS = locale.h $(CATHEADER) # Scalos_Locale.h
23 CC = sc
24 CFLAGS = nostkchk nochkabort strcons strmer opt dbg=f nover streq data=far \
25 idir=/include \
26 idir=$(subst ../,/,$(MCPGFX_DIR)) \
27 idir=$(subst ../,/,$(INT64_DIR)) \
28 idir=$(subst ../,/,$(FS_DIR)) \
29 idir=$(subst ../,/,$(MALLOC_DIR)) \
30 idlen=64 \
31 define SVN_VERSION=$(SVNVERSION) \
32 define SCALOSLOCALE=$(SCALOS_LOCALE) \
33 ERROR=87,88 IGNORE=73,306,316
34 #define DEBUG_SEMAPHORES=1
35 SPLAT = sc:c/splat
36 AS = phxass
37 AFLAGS = quiet m=68020 linedebug opt=NRQB i=sc:Assembler_Headers/
38 LD = slink
39 LDFLAGS = NOICONS BATCH QUIET
40 LDLIBS = LIB:scmnb.lib \
41 /SAS-lib/png.lib \
42 /SAS-lib/zf.lib \
43 /SAS-lib/snprintf.lib \
44 LIB:scnb.lib \
45 LIB:mempools.lib \
46 LIB:debug.lib \
47 LIB:amiga.lib
48 ECHO = echo
49 CSTARTUP = .startup/cbacknb.o
50 OBJDIR = .sasobj
51 MCPGFX_DIR = ../common/McpGfx
52 INT64_DIR = ../common/Int64
53 FS_DIR = ../common/Fs
54 MALLOC_DIR = ../common/malloc
56 SCALOS_LOCALE = $(OBJDIR)/Scalos_Locale.h
58 #############################################################
60 $(OBJDIR)::
61 @[ -d $(OBJDIR) ] || mkdir $(OBJDIR) > /dev/null 2>&1
63 #############################################################
65 APP = .bin_os3/Scalos
66 APP_DBG = .bin_os3/Scalos.debug
67 CATHEADER = $(SCALOS_LOCALE)
68 MSG_NAMES = MsgIdNames.h
69 DESTCAT = Locale:Catalogs
70 CAT_FILE = Scalos/Scalos.catalog
72 CATS = dansk \
73 deutsch \
74 español \
75 français \
76 Polski \
77 ÃeÓtina
79 ALLCATS = $(foreach cat,$(CATS),catalogs/$(cat)/$(CAT_FILE))
81 #############################################################
83 # The default target (all) and what to really build
84 all: $(APP) \
85 $(APP_DBG) \
86 allcatalogs
87 @$(SUBDIRMAKE) Tools
89 ################################################################################
91 # make all Scalos .catalogs
92 allcatalogs:
93 -@$(foreach cat,$(CATS),$(SUBDIRMAKE) catalogs/$(cat)/Scalos;)
95 #############################################################
97 SRCS = about.c \
98 AppMenu.c \
99 AutoUpdate.c \
100 Backdrop.c \
101 BackFill.c \
102 BTree.c \
103 ButtonGadgetClass.c \
104 ChildProcess.c \
105 Class.c \
106 cleanup.c \
107 CLIStart.c \
108 ControlBar.c \
109 crc32.c \
110 CycleGadgetClass.c \
111 DefIcons.c \
112 DeviceWindowClass.c \
113 DevListClass.c \
114 $(INT64_DIR)/Dos64.c \
115 DoubleClick.c \
116 DragDrop.c \
117 DragDropBobs.c \
118 DrawIcon.c \
119 DropMarks.c \
120 dtimage.c \
121 DtImageClass.c \
122 FileCommands.c \
123 FileTransClass.c \
124 FileTypes.c \
125 FontUtil.c \
126 FrameImageClass.c \
127 $(FS_DIR)/FsAbstraction.c \
128 Functions.c \
129 GadgetBarClass.c \
130 GadgetBarImageClass.c \
131 GadgetBarTextClass.c \
132 GaugeGadgetClass.c \
133 HistoryGadgetClass.c \
134 IconifyClass.c \
135 IconImageClass.c \
136 IconWindowClass.c \
137 IconWindow_MouseMove.c \
138 idcmp.c \
139 InputHandler.c \
140 $(INT64_DIR)/int64.c \
141 Lasso.c \
142 LocaleStrings.c \
143 MainWait.c \
144 $(MALLOC_DIR)/malloc.c \
145 Memory.c \
146 Menu.c \
147 MenuCommand.c \
148 Messages.c \
149 MouseIcon.c \
150 OpenDrawerByName.c \
151 Patches.c \
152 Patches-classic.c \
153 Pattern.c \
154 PopupMenus.c \
155 PopOpenWindows.c \
156 Prefs.c \
157 Rename.c \
158 Request.c \
159 RootClass.c \
160 ScaLibrary.c \
161 ScaLibrary-classic.c \
162 scalos.c \
163 ScalosInit.c \
164 ScalosLocale.c \
165 ScalosVersion.c \
166 Scalos_Cx.c \
167 $(MCPGFX_DIR)/ScalosMcpGfx.c \
168 ScanDir.c \
169 ScanDirText.c \
170 Semaphores.c \
171 SeparatorGadgetClass.c \
172 Shortcuts.c \
173 Splash.c \
174 StatusBar.c \
175 StringGadgetClass.c \
176 Subroutines.c \
177 TextIconClass.c \
178 TextIconHighlightClass.c \
179 TextWindowClass.c \
180 TitleClass.c \
181 ThumbnailCache.c \
182 Thumbnails.c \
183 ToolTip.c \
184 ToolTypes.c \
185 TTLayout.c \
186 Undo.c \
187 wbl.c \
188 WBStartup.c \
189 Window.c \
190 WindowClass.c \
191 windowtask.c \
193 #############################################################
195 define SRCS_LIST_TO_OBJS
196 $(addprefix $(OBJDIR)/, $(addsuffix .o, $(foreach file, $(SRCS), \
197 $(basename $(notdir $(file))))))
198 endef
199 OBJS = $(SRCS_LIST_TO_OBJS)
201 #############################################################
203 # CLI command used when linking the final executable
204 $(APP) : $(OBJS)
205 @printf '\033[32mLink: \033[31m\033[1m$@\033[0m\n'
206 @$(LD) FROM $(CSTARTUP) $(OBJS) LIB $(LDLIBS) TO $@ $(LDFLAGS) STRIPDEBUG
209 # new 20010410 : build separate executable "Scalos.debug" with all debug information
210 $(APP_DBG) : $(OBJS)
211 @printf '\033[32mLink: \033[31m\033[1m$@\033[0m\n'
212 @$(LD) FROM $(CSTARTUP) $(OBJS) LIB $(LDLIBS) TO $@ $(LDFLAGS) ADDSYM
214 #############################################################
216 # CLI command used when compiling. This is generic and will be called for all the
217 # dependancies (C source files) that need compiling.
218 $(OBJDIR)/%.o : %.c
219 @printf '\033[32mCompile: \033[31m\033[1m$<\033[0m\n'
220 @$(CC) $(CFLAGS) $*.c objectname $@
222 $(OBJDIR)/ScalosMcpGfx.o: $(MCPGFX_DIR)/ScalosMcpGfx.c
223 @printf '\033[32mCompile: \033[31m\033[1m$<\033[0m\n'
224 @$(CC) $(CFLAGS) $(subst ../,/,$<) objectname $@
226 $(OBJDIR)/int64.o: $(INT64_DIR)/int64.c
227 @printf '\033[32mCompile: \033[31m\033[1m$<\033[0m\n'
228 @$(CC) $(CFLAGS) $(subst ../,/,$<) objectname $@
230 $(OBJDIR)/Dos64.o: $(INT64_DIR)/Dos64.c
231 @printf '\033[32mCompile: \033[31m\033[1m$<\033[0m\n'
232 @$(CC) $(CFLAGS) $(subst ../,/,$<) objectname $@
234 $(OBJDIR)/FsAbstraction.o: $(FS_DIR)/FsAbstraction.c
235 @printf '\033[32mCompile: \033[31m\033[1m$<\033[0m\n'
236 @$(CC) $(CFLAGS) $(subst ../,/,$<) objectname $@
238 $(OBJDIR)/malloc.o: $(MALLOC_DIR)/malloc.c
239 @printf '\033[32mCompile: \033[31m\033[1m$<\033[0m\n'
240 @$(CC) $(CFLAGS) $(subst ../,/,$<) objectname $@
242 # commands generated a catalog (.catalog) from a catalog translation (.ct) file.
243 .ct.catalog:
244 $(CATCOMP) scalos.cd $< CATALOG $*.catalog VB=1
246 # Commands for assembling. Called for all the targets which have an assembly language (.s)
247 # file as the main source file.
248 $(OBJDIR)/%.o : %.s
249 @printf '\033[32mAssemble: \033[31m\033[1m$<\033[0m\n'
250 @$(AS) $(AFLAGS) $<
252 #############################################################
254 # A list of all project dependancies. Since the list of header files is so small, they
255 # are just put in after the source files instead of defining another variable to hold them
256 # all.
258 scalos_structures.h : BTree.h Semaphores.h
260 $(OBJDIR)/about.o : about.c about.h DtImageClass.h TTLayout.h $(CHEADERS) $(LOCALE_HEADERS)
261 $(OBJDIR)/AppMenu.o : AppMenu.c $(CHEADERS)
262 $(OBJDIR)/argb.o : argb.c $(CHEADERS)
263 $(OBJDIR)/AutoUpdate.o : AutoUpdate.c $(CHEADERS)
264 $(OBJDIR)/Backdrop.o : Backdrop.c $(CHEADERS)
265 $(OBJDIR)/BackFill.o : BackFill.c $(CHEADERS)
266 $(OBJDIR)/BTree.o : BTree.c BTree.h $(CHEADERS)
267 $(OBJDIR)/ButtonGadgetClass.o : ButtonGadgetClass.c $(CHEADERS)
268 $(OBJDIR)/ChildProcess.o : ChildProcess.c $(CHEADERS)
269 $(OBJDIR)/Class.o : Class.c ../include/DefIcons.h $(CHEADERS)
270 $(OBJDIR)/cleanup.o : cleanup.c $(CHEADERS)
271 $(OBJDIR)/CLIStart.o : CLIStart.c ../include/DefIcons.h $(CHEADERS)
272 $(OBJDIR)/ControlBar.o : ControlBar.c $(CHEADERS) $(LOCALE_HEADERS) DtImageClass.h HistoryGadgetClass.h CycleGadgetClass.h FrameImageClass.h
273 $(OBJDIR)/crc32.o : crc32.c $(CHEADERS)
274 $(OBJDIR)/CycleGadgetClass.o : CycleGadgetClass.c $(CHEADERS) DtImageClass.h CycleGadgetClass.h FrameImageClass.h
275 $(OBJDIR)/DefIcons.o : DefIcons.c ../include/DefIcons.h $(CHEADERS)
276 $(OBJDIR)/DeviceWindowClass.o : DeviceWindowClass.c ../include/DefIcons.h $(LOCALE_HEADERS) $(CHEADERS)
277 $(OBJDIR)/DevListClass.o : DevListClass.c $(CHEADERS)
278 $(OBJDIR)/Dos64.o : $(INT64_DIR)/Dos64.c $(CHEADERS) $(LOCALE_HEADERS)
279 $(OBJDIR)/DoubleClick.o : DoubleClick.c ../include/DefIcons.h $(CHEADERS) $(LOCALE_HEADERS)
280 $(OBJDIR)/DragDrop.o : DragDrop.c DtImageClass.h ../include/DefIcons.h $(CHEADERS) $(LOCALE_HEADERS)
281 $(OBJDIR)/DragDropBobs.o : DragDropBobs.c $(CHEADERS) $(LOCALE_HEADERS)
282 $(OBJDIR)/DropMarks.o : DropMarks.c $(CHEADERS)
283 $(OBJDIR)/DrawIcon.o : DrawIcon.c $(CHEADERS)
284 $(OBJDIR)/dtimage.o : dtimage.c $(CHEADERS)
285 $(OBJDIR)/DtImageClass.o : DtImageClass.c DtImageClass.h $(CHEADERS)
286 $(OBJDIR)/FileCommands.o : FileCommands.c $(CHEADERS) FileTransClass.h $(LOCALE_HEADERS)
287 $(OBJDIR)/FileTransClass.o : FileTransClass.c $(CHEADERS) FileTransClass.h $(LOCALE_HEADERS)
288 $(OBJDIR)/FileTypes.o : FileTypes.c TTLayout.h MsgIdNames.h PenNames.h DtImageClass.h ../include/DefIcons.h $(CHEADERS)
289 $(OBJDIR)/FontUtil.o : FontUtil.c $(CHEADERS)
290 $(OBJDIR)/FrameImageClass.o : FrameImageClass.c $(CHEADERS) FrameImageClass.h
291 $(OBJDIR)/FsAbstraction.o : $(FS_DIR)/FsAbstraction.c $(CHEADERS)
292 $(OBJDIR)/Functions.o : Functions.c $(CHEADERS)
293 $(OBJDIR)/GadgetBarClass.o : GadgetBarClass.c $(CHEADERS)
294 $(OBJDIR)/GadgetBarImageClass.o : GadgetBarImageClass.c $(CHEADERS)
295 $(OBJDIR)/GadgetBarTextClass.o : GadgetBarTextClass.c $(CHEADERS)
296 $(OBJDIR)/GaugeGadgetClass.o : GaugeGadgetClass.c $(CHEADERS) GaugeGadgetClass.h
297 $(OBJDIR)/HistoryGadgetClass.o : HistoryGadgetClass.c $(CHEADERS) DtImageClass.h HistoryGadgetClass.h
298 $(OBJDIR)/IconifyClass.o : IconifyClass.c $(CHEADERS)
299 $(OBJDIR)/IconImageClass.o : IconImageClass.c $(CHEADERS) IconImageClass.h
300 $(OBJDIR)/IconWindowClass.o : IconWindowClass.c ../include/DefIcons.h $(CHEADERS)
301 $(OBJDIR)/IconWindow_MouseMove.o : IconWindow_MouseMove.c ../include/DefIcons.h $(CHEADERS)
302 $(OBJDIR)/idcmp.o : idcmp.c CycleGadgetClass.h IconImageClass.h $(CHEADERS)
303 $(OBJDIR)/InputHandler.o : InputHandler.c $(CHEADERS)
304 $(OBJDIR)/int64.o : $(INT64_DIR)/int64.c $(CHEADERS)
305 $(OBJDIR)/ScalosMcpGfx.o : $(MCPGFX_DIR)/ScalosMcpGfx.c $(CHEADERS)
306 $(OBJDIR)/Lasso.o : Lasso.c $(CHEADERS)
307 $(OBJDIR)/LocaleStrings.o : LocaleStrings.c $(CHEADERS) $(LOCALE_HEADERS)
308 $(OBJDIR)/MainWait.o : MainWait.c $(CHEADERS)
309 $(OBJDIR)/malloc.o : $(MALLOC_DIR)/malloc.c $(CHEADERS)
310 $(OBJDIR)/Memory.o : Memory.c $(CHEADERS)
311 $(OBJDIR)/Menu.o : Menu.c DtImageClass.h $(CHEADERS) $(LOCALE_HEADERS)
312 $(OBJDIR)/MenuCommand.o : MenuCommand.c ../include/DefIcons.h $(CHEADERS) $(LOCALE_HEADERS)
313 $(OBJDIR)/Messages.o : Messages.c ../include/DefIcons.h $(CHEADERS) $(LOCALE_HEADERS)
314 $(OBJDIR)/MouseIcon.o : MouseIcon.c $(CHEADERS)
315 $(OBJDIR)/OpenDrawerByName.o : OpenDrawerByName.c $(CHEADERS)
316 $(OBJDIR)/Patches.o : Patches.c Patches.h $(CHEADERS)
317 $(OBJDIR)/Patches-classic.o : Patches-classic.c Patches.h $(CHEADERS)
318 $(OBJDIR)/Pattern.o : Pattern.c $(CHEADERS)
319 $(OBJDIR)/PopOpenWindows.o : PopOpenWindows.c $(CHEADERS)
320 $(OBJDIR)/PopupMenus.o : PopupMenus.c ../include/DefIcons.h $(CHEADERS)
321 $(OBJDIR)/Prefs.o : Prefs.c $(CHEADERS) $(LOCALE_HEADERS)
322 $(OBJDIR)/Rename.o : Rename.c $(CHEADERS)
323 $(OBJDIR)/Request.o : Request.c $(CHEADERS) $(LOCALE_HEADERS)
324 $(OBJDIR)/RootClass.o : RootClass.c $(CHEADERS)
325 $(OBJDIR)/ScaLibrary.o : ScaLibrary.c Scalos_rev.h ../include/DefIcons.h $(CHEADERS) $(LOCALE_HEADERS)
326 $(OBJDIR)/ScaLibrary-classic.o : ScaLibrary-classic.c Scalos_rev.h $(CHEADERS) $(LOCALE_HEADERS)
327 $(OBJDIR)/scalos.o : scalos.c $(CHEADERS) $(LOCALE_HEADERS)
328 $(OBJDIR)/ScalosInit.o : ScalosInit.c Scalos_rev.h $(CHEADERS) $(LOCALE_HEADERS)
329 $(OBJDIR)/ScalosLocale.o : ScalosLocale.c $(CHEADERS)
330 $(OBJDIR)/ScalosVersion.o : ScalosVersion.c Scalos_rev.h FORCE
331 $(OBJDIR)/Scalos_Cx.o : Scalos_Cx.c $(CHEADERS)
332 $(OBJDIR)/ScanDir.o : ScanDir.c ../include/DefIcons.h $(LOCALE_HEADERS) $(CHEADERS)
333 $(OBJDIR)/ScanDirText.o : ScanDirText.c ../include/DefIcons.h $(LOCALE_HEADERS) $(CHEADERS)
334 $(OBJDIR)/Semaphores.o : Semaphores.c $(CHEADERS)
335 $(OBJDIR)/SeparatorGadgetClass.o : SeparatorGadgetClass.c $(CHEADERS)
336 $(OBJDIR)/Shortcuts.o : Shortcuts.c $(CHEADERS)
337 $(OBJDIR)/Splash.o : Splash.c TTLayout.h $(CHEADERS) $(LOCALE_HEADERS)
338 $(OBJDIR)/StatusBar.o : StatusBar.c $(CHEADERS) $(LOCALE_HEADERS)
339 $(OBJDIR)/StringGadgetClass.o : StringGadgetClass.c $(CHEADERS)
340 $(OBJDIR)/Subroutines.o : Subroutines.c $(CHEADERS)
341 $(OBJDIR)/TextIconClass.o : TextIconClass.c TextIconHighlightClass.h ../include/DefIcons.h $(CHEADERS) $(LOCALE_HEADERS)
342 $(OBJDIR)/TextIconHighlightClass.o : TextIconHighlightClass.c ../include/DefIcons.h $(CHEADERS)
343 $(OBJDIR)/TextWindowClass.o : TextWindowClass.c ../include/DefIcons.h $(CHEADERS)
344 $(OBJDIR)/TitleClass.o : TitleClass.c $(CHEADERS) $(LOCALE_HEADERS)
345 $(OBJDIR)/ThumbnailCache.o : ThumbnailCache.c $(CHEADERS)
346 $(OBJDIR)/Thumbnails.o : Thumbnails.c $(CHEADERS)
347 $(OBJDIR)/ToolTip.o : ToolTip.c TTLayout.h ../include/DefIcons.h $(CHEADERS) $(LOCALE_HEADERS)
348 $(OBJDIR)/ToolTypes.o : ToolTypes.c $(CHEADERS)
349 $(OBJDIR)/TTLayout.o : TTLayout.c TTLayout.h ../include/DefIcons.h $(CHEADERS)
350 $(OBJDIR)/Undo.o : Undo.c $(CHEADERS) $(LOCALE_HEADERS)
351 $(OBJDIR)/wbl.o : wbl.c $(CHEADERS) $(LOCALE_HEADERS)
352 $(OBJDIR)/WBStartup.o : WBStartup.c $(CHEADERS) $(LOCALE_HEADERS)
353 $(OBJDIR)/Window.o : Window.c $(CHEADERS) IconImageClass.h
354 $(OBJDIR)/WindowClass.o : WindowClass.c $(CHEADERS)
355 $(OBJDIR)/windowtask.o : windowtask.c $(CHEADERS) $(LOCALE_HEADERS)
357 FORCE:
359 #############################################################
361 # generate locale include files
362 $(CATHEADER) : Scalos.cd
363 @printf '\033[32mCatComp header: \033[31m\033[1m$@ \033[32mfrom \033[31m$<\033[0m\n'
364 @$(FLEXCAT) $< $@=$(TOPLEVEL)/CatComp_h.sd
367 $(MSG_NAMES) : Scalos.cd
368 @printf '\033[32mGenMsgIdNames: \033[31m\033[1m$@ \033[32mfrom \033[31m$<\033[0m\n'
369 @$(FLEXCAT) $< $@=$(TOPLEVEL)/msgidnames.sd
371 #############################################################
373 # install Scalos executable in Scalos:
374 install:
375 @printf '\033[32mInstall: \033[31m\033[1m$(APP)\033[0m\n'
376 @copy $(APP) Scalos: clone
377 @printf '\033[32mInstall: \033[31m\033[1m$(CAT_FILE)\033[0m\n'
378 -@$(foreach cat,$(CATS),copy "catalogs/$(cat)/$(CAT_FILE)" "$(DESTCAT)/$(cat)/Scalos" clone;)
380 #############################################################
382 # A little something to clean it all up
383 clean:
384 @printf '\033[32mCleanup: \033[31m\033[1m'
385 @delete $(OBJS) $(APP) $(APP_DBG) $(MSG_NAMES) $(ALLCATS) $(CATHEADER) $(MSG_NAMES)
386 @printf '\033[0m'
388 #############################################################
390 nodebug:
391 -@$(SPLAT) -s -o "d2(" "d1(" "#?.c"
393 #############################################################