Rev 2789 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 2789 | Rev 2816 | ||
---|---|---|---|
Line 26... | Line 26... | ||
26 | # $(2) = name of main source file. |
26 | # $(2) = name of main source file. |
27 | # $(3) = folder of binary file - without spaces. |
27 | # $(3) = folder of binary file - without spaces. |
28 | # $(4) = name of program - without path and extension, |
28 | # $(4) = name of program - without path and extension, |
29 | define fasm_meta_rule |
29 | define fasm_meta_rule |
30 | $(1): $(2) Makefile.fasm .deps/.dir $$(call respace,$$(addsuffix .dir,$(3))) |
30 | $(1): $(2) Makefile.fasm .deps/.dir $$(call respace,$$(addsuffix .dir,$(3))) |
31 | fasm -m 65536 "$$<" "$$@" -s .deps/$(4).fas |
31 | tmpfile=`mktemp --tmpdir build.XXXXXXXX` && \ |
32 | prepsrc .deps/$(4).fas /dev/null |
32 | (fasm -m 65536 "$$<" "$$@" -s $$$$tmpfile && \ |
33 | prepsrc .deps/$(4).fas /dev/stdout | \ |
33 | fasmdep -e $$$$tmpfile > .deps/$(4).Po && \ |
34 | perl -n -e 's|\\|/|g;s| |\\ |g;push @a,$$$$1 if/^;include\\ \x27(.*?)\x27/;' \ |
34 | rm $$$$tmpfile) || (rm $$$$tmpfile; false) |
35 | -e 'END{$$$$a=join " \\\n ",@a;print q`$(1): `,"$$$$a\n$$$$a:\n"}' > .deps/$(4).Po |
- | |
36 | kpack --nologo "$$@" |
35 | kpack --nologo "$$@" |
37 | -include .deps/$(4).Po |
36 | -include .deps/$(4).Po |
38 | endef |
37 | endef |
Line 39... | Line 38... | ||
39 | 38 | ||
40 | define fasm_nokpack_meta_rule |
39 | define fasm_nokpack_meta_rule |
41 | $(1): $(2) Makefile.fasm .deps/.dir $$(call respace,$$(addsuffix .dir,$(3))) |
40 | $(1): $(2) Makefile.fasm .deps/.dir $$(call respace,$$(addsuffix .dir,$(3))) |
42 | fasm -m 65536 "$$<" "$$@" -s .deps/$(4).fas |
41 | tmpfile=`mktemp --tmpdir build.XXXXXXXX` && \ |
43 | prepsrc .deps/$(4).fas /dev/null |
42 | (fasm -m 65536 "$$<" "$$@" -s $$$$tmpfile && \ |
44 | prepsrc .deps/$(4).fas /dev/stdout | \ |
43 | fasmdep -e $$$$tmpfile > .deps/$(4).Po && \ |
45 | perl -n -e 's|\\|/|g;s| |\\ |g;push @a,$$$$1 if/^;include\\ \x27(.*?)\x27/;' \ |
- | |
46 | -e 'END{$$$$a=join " \\\n ",@a;print q`$(1): `,"$$$$a\n$$$$a:\n"}' > .deps/$(4).Po |
44 | rm $$$$tmpfile) || (rm $$$$tmpfile; false) |
47 | -include .deps/$(4).Po |
45 | -include .deps/$(4).Po |
Line 48... | Line 46... | ||
48 | endef |
46 | endef |
49 | 47 | ||
50 | progname=$(call respace,$(basename $(notdir $(call binarypart,$(f))))) |
48 | progname=$(call respace,$(basename $(notdir $(call binarypart,$(f))))) |
51 | binarydir=$(subst ./,,$(dir $(call binarypart,$(f)))) |
49 | binarydir=$(subst ./,,$(dir $(call binarypart,$(f)))) |
Line 52... | Line 50... | ||
52 | $(foreach f,$(FASM_PROGRAMS) $(FASM_PROGRAMS_CD) $(SKIN_SOURCES),$(eval $(call fasm_meta_rule,$(fbinary),$(fsource),$(binarydir),$(progname)))) |
50 | $(foreach f,$(FASM_PROGRAMS) $(FASM_PROGRAMS_CD) $(SKIN_SOURCES),$(eval $(call fasm_meta_rule,$(fbinary),$(fsource),$(binarydir),$(progname)))) |
53 | $(foreach f,$(FASM_NOKPACK_PROGRAMS),$(eval $(call fasm_nokpack_meta_rule,$(fbinary),$(fsource),$(binarydir),$(progname)))) |
51 | $(foreach f,$(FASM_NOKPACK_PROGRAMS),$(eval $(call fasm_nokpack_meta_rule,$(fbinary),$(fsource),$(binarydir),$(progname)))) |
54 | 52 | ||
55 | # Rule for the kernel differs: it uses kerpack instead of kpack. |
53 | # Rule for the kernel differs: it uses kerpack instead of kpack. |
56 | kernel.mnt: $(KERNEL)/kernel.asm Makefile.fasm .deps/.dir |
54 | kernel.mnt: $(KERNEL)/kernel.asm Makefile.fasm .deps/.dir |
57 | fasm -m 65536 "$<" "$@" -s .deps/kernel.fas |
- | |
58 | prepsrc .deps/kernel.fas /dev/null |
55 | tmpfile=`mktemp --tmpdir build.XXXXXXXX` && \ |
59 | prepsrc .deps/kernel.fas /dev/stdout | \ |
- | |
60 | perl -n -e 's|\\|/|g;s| |\\ |g;push @a,$$1 if/^;include\\ \x27(.*?)\x27/;' \ |
56 | (fasm -m 65536 "$<" "$@" -s $$tmpfile && \ |