3 # The rules for building a program.
5 base_prog
= $(shell basename $(PROGRAM
))
6 sourcefile
= $(base_prog
).sources
7 base_prog_config
:= $(wildcard $(base_prog
).config
)
9 PROGRAM_config
:= $(PROGRAM
).config
12 executable_CLEAN_FILES
= *.exe
$(PROGRAM
) $(PROGRAM
).mdb
$(BUILT_SOURCES
)
14 ifeq (cat
,$(PLATFORM_CHANGE_SEPARATOR_CMD
))
15 response
= $(sourcefile
)
17 response
= $(depsdir
)/$(base_prog
).response
18 executable_CLEAN_FILES
+= $(response
)
21 makefrag
= $(depsdir
)/$(PROFILE
)_
$(base_prog
).makefrag
22 pdb
= $(patsubst %.exe
,%.pdb
,$(PROGRAM
))
23 mdb
= $(patsubst %.exe
,%.mdb
,$(PROGRAM
))
24 executable_CLEAN_FILES
+= $(makefrag
) $(pdb
) $(mdb
)
26 all-local
: $(PROGRAM
) $(PROGRAM_config
)
28 install-local
: all-local
33 install-local uninstall-local
:
37 ifndef PROGRAM_INSTALL_DIR
38 PROGRAM_INSTALL_DIR
= $(prefix)/bin
41 install-local
: $(PROGRAM
) $(PROGRAM_config
)
42 $(MKINSTALLDIRS
) $(DESTDIR
)$(PROGRAM_INSTALL_DIR
)
43 $(INSTALL_BIN
) $(PROGRAM
) $(DESTDIR
)$(PROGRAM_INSTALL_DIR
)
44 test ! -f
$(PROGRAM
).mdb ||
$(INSTALL_BIN
) $(PROGRAM
).mdb
$(DESTDIR
)$(PROGRAM_INSTALL_DIR
)
46 $(INSTALL_DATA
) $(PROGRAM_config
) $(DESTDIR
)$(PROGRAM_INSTALL_DIR
)
50 -rm -f
$(DESTDIR
)$(PROGRAM_INSTALL_DIR
)/$(base_prog
) $(DESTDIR
)$(PROGRAM_INSTALL_DIR
)/$(base_prog
).mdb
$(DESTDIR
)$(PROGRAM_INSTALL_DIR
)/$(base_prog
).config
54 -rm -f
$(executable_CLEAN_FILES
) $(CLEAN_FILES
)
60 run-test-ondotnet-local
:
63 DISTFILES
= $(sourcefile
) $(base_prog_config
) $(EXTRA_DISTFILES
)
65 dist-local
: dist-default
66 for f in
`cat $(sourcefile)` ; do \
69 *) dest
=`dirname $$f` ; \
70 case
$$subs in
*" $$dest "*) : ;; *) subs
=" $$dest$$subs" ; $(MKINSTALLDIRS
) $(distdir
)/$$dest ;; esac
; \
71 cp
-p
$$f $(distdir
)/$$dest || exit
1 ;; \
73 for d in .
$$subs ; do \
74 case
$$d in .
) : ;; *) test ! -f
$$d/ChangeLog || cp
-p
$$d/ChangeLog
$(distdir
)/$$d ;; esac
; done
76 ifndef PROGRAM_COMPILE
77 PROGRAM_COMPILE
= $(CSCOMPILE
)
80 $(PROGRAM
): $(BUILT_SOURCES
) $(EXTRA_SOURCES
) $(response
)
81 $(PROGRAM_COMPILE
) -target
:exe
-out
:$(base_prog
) $(BUILT_SOURCES
) $(EXTRA_SOURCES
) @
$(response
)
82 ifneq ($(base_prog
),$(PROGRAM
))
83 mv
$(base_prog
) $(PROGRAM
)
84 test ! -f
$(base_prog
).mdb || mv
$(base_prog
).mdb
$(PROGRAM
).mdb
88 ifneq ($(base_prog_config
),$(PROGRAM_config
))
89 executable_CLEAN_FILES
+= $(PROGRAM_config
)
90 $(PROGRAM_config
): $(base_prog_config
)
91 cp
$(base_prog_config
) $(PROGRAM_config
)
95 $(makefrag
): $(sourcefile
)
97 @sed
's,^,$(PROGRAM): ,' $< > $@
99 ifneq ($(response
),$(sourcefile
))
100 $(response
): $(sourcefile
)
101 @echo Creating
$@ ...
102 @
( $(PLATFORM_CHANGE_SEPARATOR_CMD
) ) <$< >$@
107 all-local
: $(makefrag
)
108 $(makefrag
): $(topdir
)/build
/executable.make