Rev 2363 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 2363 | Rev 2777 | ||
---|---|---|---|
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 | fasm -m 65536 "$$<" "$$@" -s .deps/$(4).fas |
32 | prepsrc .deps/$(4).fas /dev/null |
32 | prepsrc .deps/$(4).fas /dev/null |
33 | prepsrc .deps/$(4).fas /dev/stdout | \ |
33 | prepsrc .deps/$(4).fas /dev/stdout | \ |
34 | perl -n -e 's|\\|/|g;s| |\\ |g;push @a,$$$$1 if/^;include\\ \x27(.*?)\x27/;' \ |
34 | perl -n -e 's|\\|/|g;s| |\\ |g;push @a,$$$$1 if/^;include\\ \x27(.*?)\x27/;' \ |
35 | -e 'END{$$$$a=join " \\\n ",@a;print q`$(1): `,"$$$$a\n$$$$a:\n"}' > .deps/$(4).Po |
35 | -e 'END{$$$$a=join " \\\n ",@a;print q`$(1): `,"$$$$a\n$$$$a:\n"}' > .deps/$(4).Po |
36 | kpack --nologo "$$@" |
36 | kpack --nologo "$$@" |
37 | -include .deps/$(4).Po |
37 | -include .deps/$(4).Po |
38 | endef |
38 | endef |
Line 39... | Line 39... | ||
39 | 39 | ||
40 | progname=$(call respace,$(basename $(notdir $(call binarypart,$(f))))) |
40 | progname=$(call respace,$(basename $(notdir $(call binarypart,$(f))))) |
41 | binarydir=$(subst ./,,$(dir $(call binarypart,$(f)))) |
41 | binarydir=$(subst ./,,$(dir $(call binarypart,$(f)))) |
Line 42... | Line 42... | ||
42 | $(foreach f,$(FASM_PROGRAMS) $(FASM_PROGRAMS_CD),$(eval $(call fasm_meta_rule,$(fbinary),$(fsource),$(binarydir),$(progname)))) |
42 | $(foreach f,$(FASM_PROGRAMS) $(FASM_PROGRAMS_CD) $(SKIN_SOURCES),$(eval $(call fasm_meta_rule,$(fbinary),$(fsource),$(binarydir),$(progname)))) |
43 | 43 | ||
44 | # Rule for the kernel differs: it uses kerpack instead of kpack. |
44 | # Rule for the kernel differs: it uses kerpack instead of kpack. |
45 | kernel.mnt: $(KERNEL)/kernel.asm Makefile.fasm .deps/.dir |
45 | kernel.mnt: $(KERNEL)/kernel.asm Makefile.fasm .deps/.dir |
46 | fasm -m 65536 $< "$@" -s .deps/kernel.fas |
46 | fasm -m 65536 "$<" "$@" -s .deps/kernel.fas |
47 | prepsrc .deps/kernel.fas /dev/null |
47 | prepsrc .deps/kernel.fas /dev/null |
48 | prepsrc .deps/kernel.fas /dev/stdout | \ |
48 | prepsrc .deps/kernel.fas /dev/stdout | \ |
49 | perl -n -e 's|\\|/|g;s| |\\ |g;push @a,$$1 if/^;include\\ \x27(.*?)\x27/;' \ |
49 | perl -n -e 's|\\|/|g;s| |\\ |g;push @a,$$1 if/^;include\\ \x27(.*?)\x27/;' \ |