Subversion Repositories Kolibri OS

Rev

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 && \