forked from KolibriOS/kolibrios
Makefile: allow additional parameters for C-- compiler, autobuild games/mine
git-svn-id: svn://kolibrios.org@1766 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
e2999eaedd
commit
68ecb4d4cd
@ -191,13 +191,13 @@ COPY_FILES:=\
|
|||||||
games/snake.ini:GAMES/SNAKE.INI:$(PROGS)/games/snake/trunk/snake.ini
|
games/snake.ini:GAMES/SNAKE.INI:$(PROGS)/games/snake/trunk/snake.ini
|
||||||
|
|
||||||
# The list of all C-- programs with one main C-- file.
|
# The list of all C-- programs with one main C-- file.
|
||||||
# Format of an item is exactly the same as in the previous list.
|
# Format of an item is exactly the same as in the previous list,
|
||||||
|
# except that there can be fourth field with parameters for a compiler.
|
||||||
CMM_PROGRAMS:=\
|
CMM_PROGRAMS:=\
|
||||||
File|Managers/eolite:File|Managers/EOLITE:$(PROGS)/fs/Eolite/trunk/Eolite.c-- \
|
File|Managers/eolite:File|Managers/EOLITE:$(PROGS)/fs/Eolite/trunk/Eolite.c-- \
|
||||||
games/clicks:GAMES/CLICKS:$(PROGS)/games/clicks/trunk/clicks.c-- \
|
games/clicks:GAMES/CLICKS:$(PROGS)/games/clicks/trunk/clicks.c-- \
|
||||||
|
games/mine:GAMES/MINE:$(PROGS)/games/mine/trunk/mine.c--:/MEOS \
|
||||||
# end if list
|
# end if list
|
||||||
# mine is not compilable
|
|
||||||
# games/mine:GAMES/MINE:$(PROGS)/games/mine/trunk/mine.c--
|
|
||||||
|
|
||||||
# List of other files to be included in the image file.
|
# List of other files to be included in the image file.
|
||||||
# Some of them are auto-built with special rules, some just exist before build.
|
# Some of them are auto-built with special rules, some just exist before build.
|
||||||
@ -235,7 +235,7 @@ OTHER_FILES:=asciivju:ASCIIVJU autorun.dat:AUTORUN.DAT \
|
|||||||
games/FindNumbers:GAMES/FindNumbers games/gomoku:GAMES/GOMOKU \
|
games/FindNumbers:GAMES/FindNumbers games/gomoku:GAMES/GOMOKU \
|
||||||
games/klavisha:GAMES/KLAVISHA games/kosilka:GAMES/KOSILKA \
|
games/klavisha:GAMES/KLAVISHA games/kosilka:GAMES/KOSILKA \
|
||||||
games/kosskin.gfx:GAMES/KOSSKIN.GFX games/kox:GAMES/KOX \
|
games/kosskin.gfx:GAMES/KOSSKIN.GFX games/kox:GAMES/KOX \
|
||||||
games/lights:GAMES/LIGHTS games/megamaze:GAMES/MEGAMAZE games/mine:GAMES/MINE \
|
games/lights:GAMES/LIGHTS games/megamaze:GAMES/MEGAMAZE \
|
||||||
games/msquare:GAMES/MSQUARE \
|
games/msquare:GAMES/MSQUARE \
|
||||||
games/reversi:GAMES/REVERSI games/rforces:GAMES/RFORCES \
|
games/reversi:GAMES/REVERSI games/rforces:GAMES/RFORCES \
|
||||||
games/sq_game:GAMES/SQ_GAME \
|
games/sq_game:GAMES/SQ_GAME \
|
||||||
@ -257,11 +257,13 @@ respace=$(subst |,$(space),$(1))
|
|||||||
binarypart=$(word 1,$(subst :, ,$(1)))
|
binarypart=$(word 1,$(subst :, ,$(1)))
|
||||||
imagepart=$(word 2,$(subst :, ,$(1)))
|
imagepart=$(word 2,$(subst :, ,$(1)))
|
||||||
sourcepart=$(word 3,$(subst :, ,$(1)))
|
sourcepart=$(word 3,$(subst :, ,$(1)))
|
||||||
|
parampart=$(word 4,$(subst :, ,$(1)))
|
||||||
# Get file names, possibly with spaces inside, from an item.
|
# Get file names, possibly with spaces inside, from an item.
|
||||||
# Here $(f) is an item - in fact, macro argument.
|
# Here $(f) is an item - in fact, macro argument.
|
||||||
fbinary=$(call respace,$(call binarypart,$(f)))
|
fbinary=$(call respace,$(call binarypart,$(f)))
|
||||||
fimage=$(call respace,$(call imagepart,$(f)))
|
fimage=$(call respace,$(call imagepart,$(f)))
|
||||||
fsource=$(call respace,$(call sourcepart,$(f)))
|
fsource=$(call respace,$(call sourcepart,$(f)))
|
||||||
|
fparam=$(call respace,$(call parampart,$(f)))
|
||||||
|
|
||||||
# Define targets for image file.
|
# Define targets for image file.
|
||||||
# Join all the lists above.
|
# Join all the lists above.
|
||||||
@ -273,7 +275,7 @@ targets:=$(foreach f,$(targets_full),$(fbinary))
|
|||||||
# mcopy_command is a macro with two parameters,
|
# mcopy_command is a macro with two parameters,
|
||||||
# local file name $(1) and image file name $(2).
|
# local file name $(1) and image file name $(2).
|
||||||
# Note that spaces in these have to be escaped with backslashes.
|
# Note that spaces in these have to be escaped with backslashes.
|
||||||
mcopy_command=mcopy -mi $(BUILD_DIR)/kolibri.img $(1) ::$(2)
|
mcopy_command=mcopy -moi $(BUILD_DIR)/kolibri.img $(1) ::$(2)
|
||||||
# Specialize a previous command for an item $(f) in one of lists.
|
# Specialize a previous command for an item $(f) in one of lists.
|
||||||
mcopy_item_command=$(call mcopy_command,$(fbinary),$(fimage))
|
mcopy_item_command=$(call mcopy_command,$(fbinary),$(fimage))
|
||||||
|
|
||||||
@ -312,8 +314,9 @@ $(BUILD_DIR)/kolibri.img: $(BUILD_DIR)/.dir \
|
|||||||
mmd -i $(BUILD_DIR)/kolibri.img ::NETWORK
|
mmd -i $(BUILD_DIR)/kolibri.img ::NETWORK
|
||||||
$(mcopy_all_items)
|
$(mcopy_all_items)
|
||||||
|
|
||||||
# Special target to modify behaviour of make.
|
# Special targets to modify behaviour of make.
|
||||||
.DELETE_ON_ERROR:
|
.DELETE_ON_ERROR:
|
||||||
|
.SUFFIXES: # delete all predefined rules
|
||||||
|
|
||||||
# The floppy bootsector.
|
# The floppy bootsector.
|
||||||
$(BUILD_DIR)/boot_fat12.bin: $(KERNEL)/bootloader/boot_fat12.asm $(KERNEL)/bootloader/floppy1440.inc
|
$(BUILD_DIR)/boot_fat12.bin: $(KERNEL)/bootloader/boot_fat12.asm $(KERNEL)/bootloader/floppy1440.inc
|
||||||
|
@ -7,9 +7,9 @@ define cmm_meta_rule
|
|||||||
$(1): $(2) Makefile.cmm $$(call respace,$$(addsuffix .dir,$(3))) \
|
$(1): $(2) Makefile.cmm $$(call respace,$$(addsuffix .dir,$(3))) \
|
||||||
$$(wildcard $$(dir $(2))*) $$(wildcard $$(dir $(2))*/*)
|
$$(wildcard $$(dir $(2))*) $$(wildcard $$(dir $(2))*/*)
|
||||||
flock $$(dir $(2)).lock \
|
flock $$(dir $(2)).lock \
|
||||||
win32-c-- /IP=Z:$$(dir $(2)) Z:$$< >&2 && \
|
win32-c-- $(5) /IP=Z:$$(dir $(2)) Z:$$< >&2 && \
|
||||||
if [ -e $$(basename $$<) ]; then f=$$(basename $$<); else f=$$(basename $$<).com; fi && \
|
if [ -e $$(basename $$<) ]; then f=$$(basename $$<); else f=$$(basename $$<).com; fi && \
|
||||||
kpack --nologo $$$$f "$$@" && rm $$$$f
|
kpack --nologo $$$$f "$$@" && rm $$$$f
|
||||||
endef
|
endef
|
||||||
|
|
||||||
$(foreach f,$(CMM_PROGRAMS),$(eval $(call cmm_meta_rule,$(fbinary),$(fsource),$(binarydir),$(progname))))
|
$(foreach f,$(CMM_PROGRAMS),$(eval $(call cmm_meta_rule,$(fbinary),$(fsource),$(binarydir),$(progname),$(fparam))))
|
||||||
|
Binary file not shown.
@ -191,13 +191,13 @@ COPY_FILES:=\
|
|||||||
games/snake.ini:GAMES/SNAKE.INI:$(PROGS)/games/snake/trunk/snake.ini
|
games/snake.ini:GAMES/SNAKE.INI:$(PROGS)/games/snake/trunk/snake.ini
|
||||||
|
|
||||||
# The list of all C-- programs with one main C-- file.
|
# The list of all C-- programs with one main C-- file.
|
||||||
# Format of an item is exactly the same as in the previous list.
|
# Format of an item is exactly the same as in the previous list,
|
||||||
|
# except that there can be fourth field with parameters for a compiler.
|
||||||
CMM_PROGRAMS:=\
|
CMM_PROGRAMS:=\
|
||||||
File|Managers/eolite:File|Managers/EOLITE:$(PROGS)/fs/Eolite/trunk/Eolite.c-- \
|
File|Managers/eolite:File|Managers/EOLITE:$(PROGS)/fs/Eolite/trunk/Eolite.c-- \
|
||||||
games/clicks:GAMES/CLICKS:$(PROGS)/games/clicks/trunk/clicks.c-- \
|
games/clicks:GAMES/CLICKS:$(PROGS)/games/clicks/trunk/clicks.c-- \
|
||||||
|
games/mine:GAMES/MINE:$(PROGS)/games/mine/trunk/mine.c--:/MEOS \
|
||||||
# end if list
|
# end if list
|
||||||
# mine is not compilable
|
|
||||||
# games/mine:GAMES/MINE:$(PROGS)/games/mine/trunk/mine.c--
|
|
||||||
|
|
||||||
# List of other files to be included in the image file.
|
# List of other files to be included in the image file.
|
||||||
# Some of them are auto-built with special rules, some just exist before build.
|
# Some of them are auto-built with special rules, some just exist before build.
|
||||||
@ -236,7 +236,7 @@ OTHER_FILES:=asciivju:ASCIIVJU autorun.dat:AUTORUN.DAT \
|
|||||||
games/FindNumbers:GAMES/FindNumbers games/gomoku:GAMES/GOMOKU \
|
games/FindNumbers:GAMES/FindNumbers games/gomoku:GAMES/GOMOKU \
|
||||||
games/klavisha:GAMES/KLAVISHA games/kosilka:GAMES/KOSILKA \
|
games/klavisha:GAMES/KLAVISHA games/kosilka:GAMES/KOSILKA \
|
||||||
games/kosskin.gfx:GAMES/KOSSKIN.GFX games/kox:GAMES/KOX \
|
games/kosskin.gfx:GAMES/KOSSKIN.GFX games/kox:GAMES/KOX \
|
||||||
games/lights:GAMES/LIGHTS games/megamaze:GAMES/MEGAMAZE games/mine:GAMES/MINE \
|
games/lights:GAMES/LIGHTS games/megamaze:GAMES/MEGAMAZE \
|
||||||
games/msquare:GAMES/MSQUARE games/padenie:GAMES/PADENIE \
|
games/msquare:GAMES/MSQUARE games/padenie:GAMES/PADENIE \
|
||||||
games/reversi:GAMES/REVERSI games/rforces:GAMES/RFORCES \
|
games/reversi:GAMES/REVERSI games/rforces:GAMES/RFORCES \
|
||||||
games/sq_game:GAMES/SQ_GAME \
|
games/sq_game:GAMES/SQ_GAME \
|
||||||
@ -258,11 +258,13 @@ respace=$(subst |,$(space),$(1))
|
|||||||
binarypart=$(word 1,$(subst :, ,$(1)))
|
binarypart=$(word 1,$(subst :, ,$(1)))
|
||||||
imagepart=$(word 2,$(subst :, ,$(1)))
|
imagepart=$(word 2,$(subst :, ,$(1)))
|
||||||
sourcepart=$(word 3,$(subst :, ,$(1)))
|
sourcepart=$(word 3,$(subst :, ,$(1)))
|
||||||
|
parampart=$(word 4,$(subst :, ,$(1)))
|
||||||
# Get file names, possibly with spaces inside, from an item.
|
# Get file names, possibly with spaces inside, from an item.
|
||||||
# Here $(f) is an item - in fact, macro argument.
|
# Here $(f) is an item - in fact, macro argument.
|
||||||
fbinary=$(call respace,$(call binarypart,$(f)))
|
fbinary=$(call respace,$(call binarypart,$(f)))
|
||||||
fimage=$(call respace,$(call imagepart,$(f)))
|
fimage=$(call respace,$(call imagepart,$(f)))
|
||||||
fsource=$(call respace,$(call sourcepart,$(f)))
|
fsource=$(call respace,$(call sourcepart,$(f)))
|
||||||
|
fparam=$(call respace,$(call parampart,$(f)))
|
||||||
|
|
||||||
# Define targets for image file.
|
# Define targets for image file.
|
||||||
# Join all the lists above.
|
# Join all the lists above.
|
||||||
@ -274,7 +276,7 @@ targets:=$(foreach f,$(targets_full),$(fbinary))
|
|||||||
# mcopy_command is a macro with two parameters,
|
# mcopy_command is a macro with two parameters,
|
||||||
# local file name $(1) and image file name $(2).
|
# local file name $(1) and image file name $(2).
|
||||||
# Note that spaces in these have to be escaped with backslashes.
|
# Note that spaces in these have to be escaped with backslashes.
|
||||||
mcopy_command=mcopy -mi $(BUILD_DIR)/kolibri.img $(1) ::$(2)
|
mcopy_command=mcopy -moi $(BUILD_DIR)/kolibri.img $(1) ::$(2)
|
||||||
# Specialize a previous command for an item $(f) in one of lists.
|
# Specialize a previous command for an item $(f) in one of lists.
|
||||||
mcopy_item_command=$(call mcopy_command,$(fbinary),$(fimage))
|
mcopy_item_command=$(call mcopy_command,$(fbinary),$(fimage))
|
||||||
|
|
||||||
@ -313,8 +315,9 @@ $(BUILD_DIR)/kolibri.img: $(BUILD_DIR)/.dir \
|
|||||||
mmd -i $(BUILD_DIR)/kolibri.img ::NETWORK
|
mmd -i $(BUILD_DIR)/kolibri.img ::NETWORK
|
||||||
$(mcopy_all_items)
|
$(mcopy_all_items)
|
||||||
|
|
||||||
# Special target to modify behaviour of make.
|
# Special targets to modify behaviour of make.
|
||||||
.DELETE_ON_ERROR:
|
.DELETE_ON_ERROR:
|
||||||
|
.SUFFIXES: # disable all predefined rules
|
||||||
|
|
||||||
# The floppy bootsector.
|
# The floppy bootsector.
|
||||||
$(BUILD_DIR)/boot_fat12.bin: $(KERNEL)/bootloader/boot_fat12.asm $(KERNEL)/bootloader/floppy1440.inc
|
$(BUILD_DIR)/boot_fat12.bin: $(KERNEL)/bootloader/boot_fat12.asm $(KERNEL)/bootloader/floppy1440.inc
|
||||||
|
@ -7,9 +7,9 @@ define cmm_meta_rule
|
|||||||
$(1): $(2) Makefile.cmm $$(call respace,$$(addsuffix .dir,$(3))) \
|
$(1): $(2) Makefile.cmm $$(call respace,$$(addsuffix .dir,$(3))) \
|
||||||
$$(wildcard $$(dir $(2))*) $$(wildcard $$(dir $(2))*/*)
|
$$(wildcard $$(dir $(2))*) $$(wildcard $$(dir $(2))*/*)
|
||||||
flock $$(dir $(2)).lock \
|
flock $$(dir $(2)).lock \
|
||||||
win32-c-- /IP=Z:$$(dir $(2)) Z:$$< >&2 && \
|
win32-c-- $(5) /IP=Z:$$(dir $(2)) Z:$$< >&2 && \
|
||||||
if [ -e $$(basename $$<) ]; then f=$$(basename $$<); else f=$$(basename $$<).com; fi && \
|
if [ -e $$(basename $$<) ]; then f=$$(basename $$<); else f=$$(basename $$<).com; fi && \
|
||||||
kpack --nologo $$$$f "$$@" && rm $$$$f
|
kpack --nologo $$$$f "$$@" && rm $$$$f
|
||||||
endef
|
endef
|
||||||
|
|
||||||
$(foreach f,$(CMM_PROGRAMS),$(eval $(call cmm_meta_rule,$(fbinary),$(fsource),$(binarydir),$(progname))))
|
$(foreach f,$(CMM_PROGRAMS),$(eval $(call cmm_meta_rule,$(fbinary),$(fsource),$(binarydir),$(progname),$(fparam))))
|
||||||
|
Binary file not shown.
Loading…
Reference in New Issue
Block a user