1 # makefile for Scalos +jl+
6 #############################################################
8 SUBDIRMAKE
= $(MAKE
) -s
-C
10 #############################################################
12 .PHONY
: clean install nodebug
14 #############################################################
16 SVNVERSION
= $(shell svnversion
-n
)
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
24 CFLAGS
= nostkchk nochkabort strcons strmer opt dbg
=f nover streq data
=far \
26 idir
=$(subst ..
/,/,$(MCPGFX_DIR
)) \
27 idir
=$(subst ..
/,/,$(INT64_DIR
)) \
28 idir
=$(subst ..
/,/,$(FS_DIR
)) \
29 idir
=$(subst ..
/,/,$(MALLOC_DIR
)) \
31 define SVN_VERSION
=$(SVNVERSION
) \
32 define SCALOSLOCALE
=$(SCALOS_LOCALE
) \
33 ERROR
=87,88 IGNORE
=73,306,316
34 #define DEBUG_SEMAPHORES=1
37 AFLAGS
= quiet m
=68020 linedebug opt
=NRQB i
=sc
:Assembler_Headers
/
39 LDFLAGS
= NOICONS BATCH QUIET
40 LDLIBS
= LIB
:scmnb.lib \
43 /SAS-lib
/snprintf.lib \
49 CSTARTUP
= .startup
/cbacknb.o
51 MCPGFX_DIR
= ..
/common
/McpGfx
52 INT64_DIR
= ..
/common
/Int64
54 MALLOC_DIR
= ..
/common
/malloc
56 SCALOS_LOCALE
= $(OBJDIR
)/Scalos_Locale.h
58 #############################################################
61 @
[ -d
$(OBJDIR
) ] || mkdir
$(OBJDIR
) > /dev
/null
2>&1
63 #############################################################
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
79 ALLCATS
= $(foreach cat
,$(CATS
),catalogs
/$(cat
)/$(CAT_FILE
))
81 #############################################################
83 # The default target (all) and what to really build
89 ################################################################################
91 # make all Scalos .catalogs
93 -@
$(foreach cat
,$(CATS
),$(SUBDIRMAKE
) catalogs
/$(cat
)/Scalos
;)
95 #############################################################
103 ButtonGadgetClass.c \
112 DeviceWindowClass.c \
114 $(INT64_DIR
)/Dos64.c \
127 $(FS_DIR
)/FsAbstraction.c \
130 GadgetBarImageClass.c \
131 GadgetBarTextClass.c \
133 HistoryGadgetClass.c \
137 IconWindow_MouseMove.c \
140 $(INT64_DIR
)/int64.c \
144 $(MALLOC_DIR
)/malloc.c \
161 ScaLibrary-classic.c \
167 $(MCPGFX_DIR
)/ScalosMcpGfx.c \
171 SeparatorGadgetClass.c \
175 StringGadgetClass.c \
178 TextIconHighlightClass.c \
193 #############################################################
195 define SRCS_LIST_TO_OBJS
196 $(addprefix $(OBJDIR
)/, $(addsuffix .o
, $(foreach file
, $(SRCS
), \
197 $(basename $(notdir $(file
))))))
199 OBJS
= $(SRCS_LIST_TO_OBJS
)
201 #############################################################
203 # CLI command used when linking the final executable
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
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.
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.
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.
249 @printf
'\033[32mAssemble: \033[31m\033[1m$<\033[0m\n'
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
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
)
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:
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
384 @printf
'\033[32mCleanup: \033[31m\033[1m'
385 @delete
$(OBJS
) $(APP
) $(APP_DBG
) $(MSG_NAMES
) $(ALLCATS
) $(CATHEADER
) $(MSG_NAMES
)
388 #############################################################
391 -@
$(SPLAT
) -s
-o
"d2(" "d1(" "#?.c"
393 #############################################################