Rev 2377 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 2377 | 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 -... | Line 38... | ||
- | 38 | ||
- | 39 | define fasm_nokpack_meta_rule |
|
- | 40 | $(1): $(2) Makefile.fasm .deps/.dir $$(call respace,$$(addsuffix .dir,$(3))) |
|
- | 41 | tmpfile=`mktemp --tmpdir build.XXXXXXXX` && \ |
|
- | 42 | (fasm -m 65536 "$$<" "$$@" -s $$$$tmpfile && \ |
|
- | 43 | fasmdep -e $$$$tmpfile > .deps/$(4).Po && \ |
|
- | 44 | rm $$$$tmpfile) || (rm $$$$tmpfile; false) |
|
- | 45 | -include .deps/$(4).Po |
|
- | 46 | endef |
|
39 | 47 | ||
40 | progname=$(call respace,$(basename $(notdir $(call binarypart,$(f))))) |
48 | progname=$(call respace,$(basename $(notdir $(call binarypart,$(f))))) |
41 | binarydir=$(subst ./,,$(dir $(call binarypart,$(f)))) |
49 | binarydir=$(subst ./,,$(dir $(call binarypart,$(f)))) |
- | 50 | $(foreach f,$(FASM_PROGRAMS) $(FASM_PROGRAMS_CD) $(SKIN_SOURCES),$(eval $(call fasm_meta_rule,$(fbinary),$(fsource),$(binarydir),$(progname)))) |
|
Line 42... | Line 51... | ||
42 | $(foreach f,$(FASM_PROGRAMS) $(FASM_PROGRAMS_CD),$(eval $(call fasm_meta_rule,$(fbinary),$(fsource),$(binarydir),$(progname)))) |
51 | $(foreach f,$(FASM_NOKPACK_PROGRAMS),$(eval $(call fasm_nokpack_meta_rule,$(fbinary),$(fsource),$(binarydir),$(progname)))) |
43 | 52 | ||
44 | # Rule for the kernel differs: it uses kerpack instead of kpack. |
53 | # Rule for the kernel differs: it uses kerpack instead of kpack. |
45 | kernel.mnt: $(KERNEL)/kernel.asm Makefile.fasm .deps/.dir |
54 | kernel.mnt: $(KERNEL)/kernel.asm Makefile.fasm .deps/.dir |
46 | fasm -m 65536 $< "$@" -s .deps/kernel.fas |
55 | tmpfile=`mktemp --tmpdir build.XXXXXXXX` && \ |
47 | prepsrc .deps/kernel.fas /dev/null |
- | |
48 | prepsrc .deps/kernel.fas /dev/stdout | \ |
56 | (fasm -m 65536 "$<" "$@" -s $$tmpfile && \ |
49 | perl -n -e 's|\\|/|g;s| |\\ |g;push @a,$$1 if/^;include\\ \x27(.*?)\x27/;' \ |
- | |
50 | -e 'END{$$a=join " \\\n ",@a;print "$@: $$a\n$$a:\n"}' > .deps/kernel.Po |
57 | fasmdep -e $$tmpfile > .deps/kernel.Po && \ |