File: Mmakefile

package info (click to toggle)
mercury 0.9-1
  • links: PTS
  • area: main
  • in suites: potato
  • size: 18,488 kB
  • ctags: 9,800
  • sloc: objc: 146,680; ansic: 51,418; sh: 6,436; lisp: 1,567; cpp: 1,040; perl: 854; makefile: 450; asm: 232; awk: 203; exp: 32; fortran: 3; csh: 1
file content (105 lines) | stat: -rw-r--r-- 3,682 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
#-----------------------------------------------------------------------------#
#-----------------------------------------------------------------------------#
# Copyright (C) 1996-1999 The University of Melbourne.
# This file may only be copied under the terms of the GNU General
# Public License - see the file COPYING in the Mercury distribution.
#-----------------------------------------------------------------------------#

# Mmake - Mmake file for the Mercury scripts

MAIN_TARGET=all

MERCURY_DIR=..
include $(MERCURY_DIR)/Mmake.common

#-----------------------------------------------------------------------------#

SCRIPTS = mmake mmc mdb c2init mgnuc ml mprof mprof_merge_runs \
	  sicstus_conv mtags vpath_find mercury_update_interface \
	  mkfifo_using_mknod mercury_cleanup_install
DEBUGGER_SCRIPTS = mdbrc
EMACS_SCRIPTS = gud.el

#-----------------------------------------------------------------------------#

.SUFFIXES: .in

.in:
	CONFIG_FILES=$@ CONFIG_HEADERS= $(MERCURY_DIR)/config.status
	# check to ensure there were no mispelt autoconf variable names
	if grep -n '[^$$]@' $@; then false; else true; fi

#-----------------------------------------------------------------------------#

.PHONY: all
all: $(SCRIPTS) $(DEBUGGER_SCRIPTS) $(EMACS_SCRIPTS)
all: Mmake.vars

#-----------------------------------------------------------------------------#

ml mgnuc: init_grade_options.sh-subr
ml mgnuc: parse_grade_options.sh-subr 
ml mgnuc: final_grade_options.sh-subr 

#-----------------------------------------------------------------------------#

.PHONY: install
install: install_mmake install_scripts \
	install_debugger_scripts install_emacs_scripts

.PHONY: install_dirs
install_dirs:
	[ -d $(INSTALL_BINDIR) ] || mkdir -p $(INSTALL_BINDIR)
	[ -d $(INSTALL_LIBDIR)/mmake ] || mkdir -p $(INSTALL_LIBDIR)/mmake
	[ -d $(INSTALL_LIBDIR)/mdb ] || mkdir -p $(INSTALL_LIBDIR)/mdb
	[ -d $(INSTALL_ELISP_DIR) ] || mkdir -p $(INSTALL_ELISP_DIR)

.PHONY: install_mmake
install_mmake: Mmake.vars Mmake.rules install_dirs
	rm -f $(INSTALL_LIBDIR)/mmake/Mmake.vars
	cp `vpath_find Mmake.vars Mmake.rules` $(INSTALL_LIBDIR)/mmake

.PHONY: install_scripts
install_scripts: $(SCRIPTS) install_dirs
	# we move the installed `mmake' script before (re)installing it
	# to avoid overwriting the script while it is running
	# (just removing it doesn't work very well on win32, which will
	# deny you permission to write the file while mmake is running).
	-mv $(INSTALL_BINDIR)/mmake $(INSTALL_BINDIR)/mmake.old
	cp $(SCRIPTS) $(INSTALL_BINDIR) 
	for file in $(SCRIPTS); do \
		chmod u+w $(INSTALL_BINDIR)/$$file ;\
	done
	-rm -f $(INSTALL_BINDIR)/mmake.old

.PHONY: install_emacs_scripts
install_emacs_scripts: $(EMACS_SCRIPTS) install_dirs
	cp $(EMACS_SCRIPTS) $(INSTALL_ELISP_DIR)

.PHONY: install_debugger_scripts
install_debugger_scripts: $(DEBUGGER_SCRIPTS) install_dirs
	# Reportedly old versions of Mercury
	# used to install mdbrc as read-only.
	# If that is the case, then we need to make sure
	# that it gets made writable before we install the
	# new version.
	-chmod u+w $(INSTALL_LIBDIR)/mdb/*
	cp $(DEBUGGER_SCRIPTS) $(INSTALL_LIBDIR)/mdb 

#-----------------------------------------------------------------------------#

.PHONY: uninstall
uninstall:
	-rm -r $(INSTALL_LIBDIR)/mmake
	-cd $(INSTALL_BINDIR) && rm $(SCRIPTS) 
	-cd $(INSTALL_LIBDIR)/mdb && rm $(DEBUGGER_SCRIPTS)

#-----------------------------------------------------------------------------#

realclean_local: clean_scripts

.PHONY: clean_scripts
clean_scripts:
	for file in *.in; do rm -f `basename $$file .in`; done

#-----------------------------------------------------------------------------#