Subversion Repositories Kolibri OS

Rev

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/;' \