2 # Makefile to compile and install the SUIF compiler
5 # default variables -- these may be overridden
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
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 \
25 @echo
" Setting up directory structures for SUIF."
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
; \
53 rm -f
$(BINDIR
)/$${file}; \
54 cp
$${file} $(BINDIR
); \
59 @
rm -f
$(BINDIR
)/Makefile
61 reinstall
: show-reinstall
65 show-install show-reinstall-bin show-reinstall
: source
66 @if
test ! -d
$(BINDIR
); then \
68 echo
" The directory structure needed for" \
69 "SUIF has not yet been set up." 1>&2; \
70 echo
" You will have to run \`\`gmake setup''" \
71 "before attempting to install" 1>&2; \
72 echo
" the system. Please see the README" \
73 "file for more critical" 1>&2; \
74 echo
" information on setup and installation." 1>&2; \
80 @if
test ""$(NIGHTLY
) = "" ; then \
82 echo
" The full SUIF compiler system is now being" \
83 "installed. To make it"; \
84 echo
" easier to tell whether there are installation" \
85 "problems and where"; \
86 echo
" they occurred, each subpackage will be installed" \
88 echo
" the full installation details will be recorded" \
90 echo
" "$(LOGFILE
)" in each subdirectory. As each" \
92 echo
" completed, a single line will be printed here" \
94 echo
" success or failure of that particular" \
100 @if
test ""$(NIGHTLY_STATUS
) = master
; then \
101 rm -f
$(NIGHTLYREADYDIR
)/* ; \
105 @
export SUB_PACKAGES
; SUB_PACKAGES
= ; \
106 export PACKAGE_NAME
; PACKAGE_NAME
= ; \
107 export STATIC_LIBNAME
; STATIC_LIBNAME
= ; \
108 export SHARED_LIBNAME
; SHARED_LIBNAME
= ; \
109 export LIBNAME_SET_A
; LIBNAME_SET_A
= ; \
110 export LIBNAME_SET_B
; LIBNAME_SET_B
= ; \
111 export LIBNAME_SET
; LIBNAME_SET
= ; \
112 export SUB_PACKAGES
; SUB_PACKAGES
= ; \
113 for
dir in
$(SUBDIRS
); do \
114 if
test ""$(NIGHTLY_STATUS
) = slave
; then \
115 file_stall
-silent
-name
$$dir $(NIGHTLYREADYDIR
)/$$dir; \
117 if
test -d
$(SUIFHOME
)/RCS
/$$dir ; then \
118 rm -rf
$(WORKDIR
)/$$dir; \
119 if
test ! -d
$(WORKDIR
)/$$dir; then \
120 mkdir
$(WORKDIR
)/$$dir; \
121 ln
-s
$(SUIFHOME
)/RCS
/$$dir $(WORKDIR
)/$$dir/RCS
; \
122 (cd
$(WORKDIR
)/$$dir; co Makefile
> /dev
/null
2>&1); \
125 if
test -d
$(WORKDIR
)/$$dir; then \
126 ( cd
$(WORKDIR
)/$$dir; \
127 $(MAKE
) --no-print-directory
$@
; \
128 $(MAKE
) --no-print-directory
clean 1>> $(LOGFILE
) 2>&1 ); \
130 if
test ""$(NIGHTLY_STATUS
) = master
; then \
131 touch
$(NIGHTLYREADYDIR
)/$$dir; \
137 install-noisy
: source
138 @
export SUB_PACKAGES
; SUB_PACKAGES
= ; \
139 export PACKAGE_NAME
; PACKAGE_NAME
= ; \
140 export STATIC_LIBNAME
; STATIC_LIBNAME
= ; \
141 export SHARED_LIBNAME
; SHARED_LIBNAME
= ; \
142 export LIBNAME_SET_A
; LIBNAME_SET_A
= ; \
143 export LIBNAME_SET_B
; LIBNAME_SET_B
= ; \
144 export LIBNAME_SET
; LIBNAME_SET
= ; \
145 export SUB_PACKAGES
; SUB_PACKAGES
= ; \
146 for
dir in
$(SUBDIRS
); do \
147 if
test -d
$(WORKDIR
)/$$dir; then \
148 ( cd
$(WORKDIR
)/$$dir; \
149 SUB_PACKAGES
= $(MAKE
) --no-print-directory
install ; \
150 $(MAKE
) --no-print-directory
clean ); \
155 @ver_assert_ver_does_not_exist
$(VERSION
)
156 @ver_build_current
$(VERSION
)
159 @
export SUB_PACKAGES
; SUB_PACKAGES
= ; \
160 export PACKAGE_NAME
; PACKAGE_NAME
= ; \
161 export STATIC_LIBNAME
; STATIC_LIBNAME
= ; \
162 export SHARED_LIBNAME
; SHARED_LIBNAME
= ; \
163 export LIBNAME_SET_A
; LIBNAME_SET_A
= ; \
164 export LIBNAME_SET_B
; LIBNAME_SET_B
= ; \
165 export LIBNAME_SET
; LIBNAME_SET
= ; \
166 export SUB_PACKAGES
; SUB_PACKAGES
= ; \
167 for
dir in
$(SUBDIRS
); do \
168 if
test -d
$(WORKDIR
)/$$dir; then \
169 ( cd
$(WORKDIR
)/$$dir; $(MAKE
) --no-print-directory
); \
174 @
-export SUB_PACKAGES
; SUB_PACKAGES
= ; \
175 export PACKAGE_NAME
; PACKAGE_NAME
= ; \
176 export STATIC_LIBNAME
; STATIC_LIBNAME
= ; \
177 export SHARED_LIBNAME
; SHARED_LIBNAME
= ; \
178 export LIBNAME_SET_A
; LIBNAME_SET_A
= ; \
179 export LIBNAME_SET_B
; LIBNAME_SET_B
= ; \
180 export LIBNAME_SET
; LIBNAME_SET
= ; \
181 export SUB_PACKAGES
; SUB_PACKAGES
= ; \
182 for
dir in
$(SUBDIRS
); do \
183 if
test -d
$(WORKDIR
)/$$dir; then \
184 ( cd
$(WORKDIR
)/$$dir; \
185 $(MAKE
) --no-print-directory
clean ); \
190 suif-recursive-make clean-rcs-links
191 if
test -d RCS
; then \
192 rm RCS
> /dev
/null
2>&1 ; \
193 echo
> /dev
/null
2>&1 ; \