nsharlit: remove duplicate const_string
[suif.git] / Makefile
blobbabe27d599c27f8e9c5b69996c84a9933c99e810
2 # Makefile to compile and install the SUIF compiler
5 # default variables -- these may be overridden
6 WORKDIR = src
7 LOGFILE = install.log
8 SHELL = /bin/sh
9 SUBDIRS = basesuif simplesuif suifbuilder baseparsuif fortback suifcookbook suifps suifcallgraph suifvectorizer convertsuif1.1.0to1.1.1 reduce suifvisitor cfg graph ipaf fortparse fort2suif fortfront para dave alias_interface speculate cparallel aa checkfort color decomp dlprintsuif gaopt inline mdopt popt preip promotescalar reaching suex suifvbrowser addsync padopt wilbyr wilbyr_lib verisuif
10 SUB_PACKAGES = basesuif
12 default: build
14 include $(SUIFHOME)/Makefile.rules
15 # read the standard definitions
16 include $(SUIFHOME)/Makefile.defs
18 MACHINCL = $(MACHDIR)/include
20 source: Makefile.local Makefile.std Makefile.sub Makefile.rules Makefile.defs \
21 README.suif FAQ
23 setup:
24 @echo
25 @echo " Setting up directory structures for SUIF."
26 @echo
27 @# create the include directory
28 @# create the machine-specific directories
29 @if test ! -d $(MACHDIR); then mkdir $(MACHDIR); else : ; fi
30 @if test ! -d $(INCLDIR); then mkdir $(INCLDIR); else : ; fi
31 @if test ! -d $(BINDIR); then mkdir $(BINDIR); else : ; fi
32 @if test ! -d $(LIBDIR); then mkdir $(LIBDIR); else : ; fi
33 @if test ! -d $(SODIR); then mkdir $(SODIR); else : ; fi
34 @if test ! -d $(MANDIR); then mkdir $(MANDIR); else : ; fi
35 @if test ! -d $(HTMLDIR); then mkdir $(HTMLDIR); else : ; fi
36 @if test ! -d $(DOCDIR); then mkdir $(DOCDIR); else : ; fi
37 @if test ! -d $(AUTOINITDIR); then mkdir $(AUTOINITDIR); else : ; fi
38 @if test ! -d $(VERDATADIR); then mkdir $(VERDATADIR); else : ; fi
39 @if test ! -d $(TCLDIR); then mkdir $(TCLDIR); else : ; fi
40 @if test ! -d $(SCRIPTDIR); then mkdir $(SCRIPTDIR); else : ; fi
41 @if test ! -d $(MACHINCL); then mkdir $(MACHINCL); else : ; fi
42 @# put the FORTRAN header file in the MACHINCL directory
43 @# note: other files (e.g. varargs.h) need to go there, too
44 @# rm -f $(MACHINCL)/sf2c.h
45 @# ( cd $(MACHINCL); ln -s ../../include/sf2c.h . )
47 @# There's a chicken-and-egg problem with the basesuif/scripts
48 @# package: it needs to be installed for packages to install. So
49 @# we short circuit it by manually installing the scripts here.
50 @if test -d src/basesuif/scripts; then \
51 (cd src/basesuif/scripts; \
52 for file in *; do \
53 rm -f $(BINDIR)/$${file}; \
54 cp $${file} $(BINDIR); \
55 chmod 775 $(BINDIR)/$${file}; \
56 done); \
57 else \
58 : ; \
60 @rm -f $(BINDIR)/Makefile
62 reinstall: show-reinstall
64 install: show-install
66 show-install show-reinstall-bin show-reinstall: source
67 @if test ! -d $(BINDIR); then \
68 echo 1>&2; \
69 echo " The directory structure needed for" \
70 "SUIF has not yet been set up." 1>&2; \
71 echo " You will have to run \`\`gmake setup''" \
72 "before attempting to install" 1>&2; \
73 echo " the system. Please see the README" \
74 "file for more critical" 1>&2; \
75 echo " information on setup and installation." 1>&2; \
76 echo 1>&2; \
77 exit 1; \
78 else \
79 true; \
81 @if test ""$(NIGHTLY) = "" ; then \
82 echo; \
83 echo " The full SUIF compiler system is now being" \
84 "installed. To make it"; \
85 echo " easier to tell whether there are installation" \
86 "problems and where"; \
87 echo " they occurred, each subpackage will be installed" \
88 "separately and"; \
89 echo " the full installation details will be recorded" \
90 "in the file"; \
91 echo " "$(LOGFILE)" in each subdirectory. As each" \
92 "installation is"; \
93 echo " completed, a single line will be printed here" \
94 "indicating the"; \
95 echo " success or failure of that particular" \
96 "installation."; \
97 echo; \
98 else \
99 true; \
101 @if test ""$(NIGHTLY_STATUS) = master ; then \
102 rm -f $(NIGHTLYREADYDIR)/* ; \
103 else \
104 true; \
106 @export SUB_PACKAGES ; SUB_PACKAGES= ; \
107 export PACKAGE_NAME ; PACKAGE_NAME= ; \
108 export STATIC_LIBNAME ; STATIC_LIBNAME= ; \
109 export SHARED_LIBNAME ; SHARED_LIBNAME= ; \
110 export LIBNAME_SET_A ; LIBNAME_SET_A= ; \
111 export LIBNAME_SET_B ; LIBNAME_SET_B= ; \
112 export LIBNAME_SET ; LIBNAME_SET= ; \
113 export SUB_PACKAGES ; SUB_PACKAGES= ; \
114 for dir in $(SUBDIRS); do \
115 if test ""$(NIGHTLY_STATUS) = slave ; then \
116 file_stall -silent -name $$dir $(NIGHTLYREADYDIR)/$$dir; \
117 fi; \
118 if test -d $(SUIFHOME)/RCS/$$dir ; then \
119 rm -rf $(WORKDIR)/$$dir; \
120 if test ! -d $(WORKDIR)/$$dir; then \
121 mkdir $(WORKDIR)/$$dir; \
122 ln -s $(SUIFHOME)/RCS/$$dir $(WORKDIR)/$$dir/RCS ; \
123 (cd $(WORKDIR)/$$dir; co Makefile > /dev/null 2>&1); \
124 fi; \
125 fi; \
126 if test -d $(WORKDIR)/$$dir; then \
127 ( cd $(WORKDIR)/$$dir; \
128 $(MAKE) --no-print-directory $@ ; \
129 $(MAKE) --no-print-directory clean 1>> $(LOGFILE) 2>&1 ); \
130 fi; \
131 if test ""$(NIGHTLY_STATUS) = master ; then \
132 touch $(NIGHTLYREADYDIR)/$$dir; \
133 else \
134 true; \
135 fi; \
136 done
138 install-noisy: source
139 @export SUB_PACKAGES ; SUB_PACKAGES= ; \
140 export PACKAGE_NAME ; PACKAGE_NAME= ; \
141 export STATIC_LIBNAME ; STATIC_LIBNAME= ; \
142 export SHARED_LIBNAME ; SHARED_LIBNAME= ; \
143 export LIBNAME_SET_A ; LIBNAME_SET_A= ; \
144 export LIBNAME_SET_B ; LIBNAME_SET_B= ; \
145 export LIBNAME_SET ; LIBNAME_SET= ; \
146 export SUB_PACKAGES ; SUB_PACKAGES= ; \
147 for dir in $(SUBDIRS); do \
148 if test -d $(WORKDIR)/$$dir; then \
149 ( cd $(WORKDIR)/$$dir; \
150 SUB_PACKAGES= $(MAKE) --no-print-directory install ; \
151 $(MAKE) --no-print-directory clean ); \
152 fi; \
153 done
155 install-ver:
156 @ver_assert_ver_does_not_exist $(VERSION)
157 @ver_build_current $(VERSION)
159 build:
160 @export SUB_PACKAGES ; SUB_PACKAGES= ; \
161 export PACKAGE_NAME ; PACKAGE_NAME= ; \
162 export STATIC_LIBNAME ; STATIC_LIBNAME= ; \
163 export SHARED_LIBNAME ; SHARED_LIBNAME= ; \
164 export LIBNAME_SET_A ; LIBNAME_SET_A= ; \
165 export LIBNAME_SET_B ; LIBNAME_SET_B= ; \
166 export LIBNAME_SET ; LIBNAME_SET= ; \
167 export SUB_PACKAGES ; SUB_PACKAGES= ; \
168 for dir in $(SUBDIRS); do \
169 if test -d $(WORKDIR)/$$dir; then \
170 ( cd $(WORKDIR)/$$dir; $(MAKE) --no-print-directory ); \
171 fi; \
172 done
174 clean:
175 @-export SUB_PACKAGES ; SUB_PACKAGES= ; \
176 export PACKAGE_NAME ; PACKAGE_NAME= ; \
177 export STATIC_LIBNAME ; STATIC_LIBNAME= ; \
178 export SHARED_LIBNAME ; SHARED_LIBNAME= ; \
179 export LIBNAME_SET_A ; LIBNAME_SET_A= ; \
180 export LIBNAME_SET_B ; LIBNAME_SET_B= ; \
181 export LIBNAME_SET ; LIBNAME_SET= ; \
182 export SUB_PACKAGES ; SUB_PACKAGES= ; \
183 for dir in $(SUBDIRS); do \
184 if test -d $(WORKDIR)/$$dir; then \
185 ( cd $(WORKDIR)/$$dir; \
186 $(MAKE) --no-print-directory clean ); \
187 fi \
188 done
190 clean-rcs-links:
191 suif-recursive-make clean-rcs-links
192 if test -d RCS ; then \
193 rm RCS > /dev/null 2>&1 ; \
194 echo > /dev/null 2>&1 ; \
195 else : ; \
198 sub-packages:
199 @echo $(SUBDIRS)