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 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422
|
###############################################################################
# #
# Make file for installing Basser Lout Version 3.10 #
# #
# Jeffrey H. Kingston #
# 30 November 1996 #
# #
# make lout Compile the Lout source #
# make c2lout Compile a small auxiliary program called c2lout #
# make install Install the Lout and c2lout binaries and libraries #
# make installman Install the Lout and c2lout manual entries #
# make installdoc Install the Lout documentation #
# make installfr Install French error messages (optional) #
# make installde Install German error messages (optional) #
# make clean Remove compilation temporaries #
# make uninstall Undo the effect of make install, installman, #
# installdoc, installfr, and installde #
# make restart Undo everything except changes to this makefile, #
# ready for a fresh start. #
# #
# make setupfiles Creates setup files by editing include/master and #
# puts them in directory setup. You should not need #
# to do this because it has already been done. #
# #
# Most installations of Lout should require only the following steps. If #
# something goes wrong, you can start again with "make restart". Please #
# carry out all the steps, in exactly the order given. Believe me, it #
# will be much faster than doing it any other way. #
# #
# (1) Set exactly one of the following macros defined below to 1 and the #
# others all to 0, to indicate the operating system under which the #
# Lout binary is to run. At present OSUNIX and OSDOS work but OSMAC #
# doesn't work. #
# #
# OSUNIX Unix in all its flavours, including Linux. #
# OSDOS MS-DOS etc. ("rb" and "wb" file access modes where needed) #
# OSMAC Macintosh #
# #
# (2) Set the USESTAT macro defined below to 1 if the system you are #
# compiling onto has the stat() file status system call. If you are #
# unsure, or know it doesn't, set USESTAT to 0. The stat() call, #
# if used, will allow Lout to determine the time of last change #
# of database index files and rebuild them automatically if required. #
# #
# (3) Set the SAFEDFT macro defined below to 1 if you want safe execution #
# (i.e. disabling calls to system()) to be the default behaviour. You #
# can always specify safe or unsafe execution by means of the -S and #
# -U options to lout when processing a document; SAFEDFT means that #
# -S rather than -U is the default behaviour. Unsafe execution is #
# required when formatting C programs and verbatim text, so if in #
# doubt, do not change the value of SAFEDFT. #
# #
# (4) Set the following four macros defined below to appropriate values: #
# #
# BINDIR Directory where Lout's binary goes. This directory is #
# assumed to exist. #
# #
# LIBDIR Directory where Lout's libraries go. This directory will #
# be created. #
# #
# DOCDIR Directory where the documents describing the Lout system #
# (written in Lout) go. This directory will be created. #
# #
# MANDIR Directory where the lout and c2lout online manual entries #
# (in nroff -man) go. This directory is assumed to exist. #
# #
# (5) Set the following two macros defined below to appropriate values. #
# I strongly recommend CHARIN=1 and CHAROUT=0 for all sites (English #
# and non-English language). This way we get a truly international #
# standard in which everyone has access to accented characters, yet #
# Lout's output is in the strict 7-bit ASCII that is recommended in #
# the PostScript manual. #
# #
# CHARIN This macro determines the assignment of characters in Lout #
# source files to character classes by the lexical analyser. #
# That is, it determines which characters are letters, which #
# is the comment character, etc. Supported values are: #
# #
# 0 For English language only ASCII installations #
# #
# 1 For installations using the ISO-LATIN-1 character set #
# (adds accented letters to the LETTER character class) #
# #
# Lout will accept any 8-bit character except '\0'; CHARIN #
# does not determine the acceptability of any character, just #
# its class. #
# #
# CHAROUT This macro determines the format of strings of literal #
# characters in the PostScript output. Currently supported #
# values are: #
# #
# 0 Every output character will be printable ASCII #
# #
# 1 Every output character will be printable ISO-LATIN-1 #
# #
# The output will be valid PostScript irrespective of the #
# value given to CHAROUT, which may be set independently of #
# CHARIN. It just determines which characters are printed #
# as \ddd escape sequences and which are printed as one-byte #
# literal characters. #
# #
# (6) Set macro USELOC to one of the following values, NOT TO A LOCALE. #
# #
# 0 Lout's error messages will always appear in English, and no #
# source code related to locales will be compiled. #
# #
# 1 Lout's error messages may appear in languages other than #
# English, depending on the current locale. The Lout source #
# will be compiled including <locale.h>, <nl_types.h>, and #
# calls to setlocale(), catopen(), catgets(), and catclose() #
# #
# If you choose to set USELOC to 1, you now need to set one or more of #
# these macros: #
# #
# LOC_FR If you want French language error messages, set this macro #
# to your French locale name, i.e. to the value that you #
# expect setlocale(LC_MESSAGES, "") to return when you want #
# to get French language error messages #
# #
# LOC_DE If you want German language error messages, set this macro #
# to your German locale name, i.e. to the value that you #
# expect setlocale(LC_MESSAGES, "") to return when you want #
# to get German language error messages #
# #
# For error messages in other languages, consult ./locale/README. #
# #
# (7) Execute "make c2lout". This will compile the c2lout program, leaving #
# its binary in this directory. No changes to other directories. #
# #
# (8) Execute "make lout". This will compile the Lout source, leaving the #
# binary in this directory. No changes are made in other directories. #
# #
# (9) This makefile assumes that Lout is not installed on your system #
# already. If you do have an earlier version of Lout installed, #
# the simplest way to get rid of it is to type "make uninstall" now. #
# Of course, this is assuming that the old version was installed in the #
# same directories as where you are about to install the new version. #
# #
# (10) Execute "make install". This will do the following things: #
# #
# (a) It will copy the lout and c2lout binaries into $(BINDIR); #
# #
# (b) It will create $(LIBDIR) and copy all the library files into it; #
# #
# (c) It will perform an initializing "lout -x" run. This run will #
# do the following checks and initializations: #
# #
# (i) It will read all the font files mentioned in file #
# $(LIBDIR)/include/fontdefs and check that they #
# exist and are in the correct format; #
# #
# (ii) It will read all the hyphenation (.lh) files mentioned #
# in file $(LIBDIR)/include/langdefs, check them, and build #
# the packed (.lp) versions; #
# #
# (iii) It will read and check the three standard database #
# (.ld) files in directory $(LIBDIR)/data, and build #
# the corresponding database index (.li) files. #
# #
# Note to OS/2 users: this initializing run may fail with an error #
# message pointing to file norweg.lh (the Norwegian language #
# hyphenation file). This problem has probably been fixed, but if #
# it does happen, change line 9 of file ./include/langdefs to #
# #
# langdef Norwegian Norsk { - . : ! ? .) :) ?) !) .' :' !' ?' } #
# #
# to dis-inform Lout about this file, then "make uninstall" and #
# "make install" again. Lout will not be able to hyphenate #
# Norwegian language words if you have to do this. #
# #
# (d) It will change the mode of the files created in (c) to be #
# publicly readable, just in case they weren't created that way. #
# #
# It is good to build the various files during installation because #
# later runs will not have write permission in the library directories. #
# #
# (11) Execute "make installman". This installs the manual entries for #
# lout and c2lout into directory $(MANDIR), which is assumed to exist. #
# These entries are troff files; plain text versions are also available #
# in directory ./man if you need them (install them yourself). #
# #
# (12) Execute "make installdoc". This creates directory $(DOCDIR) and #
# copies the Lout documentation into it. #
# #
# (13) If you want French error messages, execute "make installfr" now. #
# If you want German error messages, execute "make installde" now. #
# These commands compile the error messages files into packed forms #
# using the gencat command, and store them in $(LIBDIR)/locale. #
# #
# (14) Execute "make clean". This cleans up this directory. #
# #
# (15) If the usual size of a piece of paper at your site is not A4, you #
# might like to now change the default value of the @PageType option #
# on line 850 of file $(LIBDIR)/include/dl. You can find the list of #
# known page types in the User's Guide, and also at line 1963 in file #
# $(LIBDIR)/include/dl. #
# #
# (16) If the usual language at your site is not English, you might like to #
# now change the default value of the @InitialLanguage option on line #
# 832 of file $(LIBDIR)/include/dl. This will mean that by default the #
# date and words like Chapter and July will appear in a different #
# language, and hyphenation will be carried out according to patterns #
# designed for that language. You can find the list of known languages #
# in the User's Guide, or in file $(LIBDIR)/include/langdefs; if yours #
# is not on the list, let me know and we can work together to add it. #
# This has nothing to do with locales and USELOC. #
# #
# Mail jeff@cs.su.oz.au if you have any problems. #
# #
###############################################################################
OSUNIX = 1
OSDOS = 0
OSMAC = 0
USESTAT = 1
SAFEDFT = 1
prefix = /usr
BINDIR = $(prefix)/bin
LIBDIR = $(prefix)/lib/lout
DOCDIR = $(prefix)/doc/lout
MANDIR = $(prefix)/man/man1
LIBFONT = font
LIBMAPS = maps
LIBINCL = include
LIBDATA = data
LIBHYPH = hyph
LIBLOCA = locale
CHARIN = 1
CHAROUT = 0
USELOC = 1
LOC_FR = fr
LOC_DE = de
CC = gcc -O2
COPTS = -ansi -pedantic -Wall -g
CFLAGS = -DOS_UNIX=$(OSUNIX) \
-DOS_DOS=$(OSDOS) \
-DOS_MAC=$(OSMAC) \
-DUSE_STAT=$(USESTAT) \
-DSAFE_DFT=$(SAFEDFT) \
-DLIB_DIR=\"$(LIBDIR)\" \
-DFONT_DIR=\"$(LIBFONT)\" \
-DMAPS_DIR=\"$(LIBMAPS)\" \
-DINCL_DIR=\"$(LIBINCL)\" \
-DDATA_DIR=\"$(LIBDATA)\" \
-DHYPH_DIR=\"$(LIBHYPH)\" \
-DLOCALE_DIR=\"$(LIBLOCA)\" \
-DCHAR_IN=$(CHARIN) \
-DCHAR_OUT=$(CHAROUT) \
-DLOCALE_ON=$(USELOC) \
-DASSERT_ON=1 $(COPTS) \
-DDEBUG_ON=1 -g
OBJS = z01.o z02.o z03.o z04.o z05.o z06.o z07.o z08.o \
z09.o z10.o z11.o z12.o z13.o z14.o z15.o z16.o \
z17.o z18.o z19.o z20.o z21.o z22.o z23.o z24.o \
z25.o z26.o z27.o z28.o z29.o z30.o z31.o z32.o \
z33.o z34.o z35.o z36.o z37.o z38.o z39.o z40.o \
z41.o z42.o z43.o z44.o z45.o z46.o z47.o
lout: $(OBJS)
$(CC) -o lout $(OBJS) -lm
chmod a+x lout
$(OBJS): externs
externs:
c2lout: c2lout.c
$(CC) $(COPTS) -o c2lout c2lout.c
chmod a+x c2lout
install: lout c2lout
@echo ""
@echo "(a) Installing lout and c2lout binaries into BINDIR $(BINDIR)"
cp lout $(BINDIR)/lout
chmod 755 $(BINDIR)/lout
cp c2lout $(BINDIR)/c2lout
chmod 755 $(BINDIR)/c2lout
@echo ""
@echo "(b) Installing library files into LIBDIR $(LIBDIR)"
mkdir $(LIBDIR)
chmod 755 $(LIBDIR)
@echo ""
mkdir $(LIBDIR)/$(LIBINCL)
chmod 755 $(LIBDIR)/$(LIBINCL)
cp include/* $(LIBDIR)/$(LIBINCL)
cp setup/* $(LIBDIR)/$(LIBINCL)
chmod 644 $(LIBDIR)/$(LIBINCL)/*
@echo ""
mkdir $(LIBDIR)/$(LIBDATA)
chmod 755 $(LIBDIR)/$(LIBDATA)
cp data/* $(LIBDIR)/$(LIBDATA)
chmod 644 $(LIBDIR)/$(LIBDATA)/*
@echo ""
mkdir $(LIBDIR)/$(LIBHYPH)
chmod 755 $(LIBDIR)/$(LIBHYPH)
cp hyph/* $(LIBDIR)/$(LIBHYPH)
chmod 644 $(LIBDIR)/$(LIBHYPH)/*
@echo ""
mkdir $(LIBDIR)/$(LIBFONT)
chmod 755 $(LIBDIR)/$(LIBFONT)
cp font/* $(LIBDIR)/$(LIBFONT)
chmod 644 $(LIBDIR)/$(LIBFONT)/*
@echo ""
mkdir $(LIBDIR)/$(LIBMAPS)
chmod 755 $(LIBDIR)/$(LIBMAPS)
cp maps/* $(LIBDIR)/$(LIBMAPS)
chmod 644 $(LIBDIR)/$(LIBMAPS)/*
@echo ""
mkdir $(LIBDIR)/$(LIBLOCA)
chmod 755 $(LIBDIR)/$(LIBLOCA)
@echo ""
@echo "(c) Initializing run (should be silent, no errors expected)"
$(BINDIR)/lout -x -s \
-I$(LIBDIR)/$(LIBINCL) -C$(LIBDIR)/$(LIBMAPS) \
-F$(LIBDIR)/$(LIBFONT) -H$(LIBDIR)/$(LIBHYPH) -D$(LIBDIR)/data \
$(LIBDIR)/$(LIBINCL)/init
@echo ""
@echo "(d) Changing mode of files just created by initializing run"
chmod 644 $(LIBDIR)/$(LIBDATA)/*
chmod 644 $(LIBDIR)/$(LIBHYPH)/*
installman:
@echo ""
@echo "Installing manual entries into MANDIR $(MANDIR)"
sed -e "s@<BINDIR>@$(BINDIR)@" -e "s@<LIBDIR>@$(LIBDIR)@" \
-e "s@<DOCDIR>@$(DOCDIR)@" -e "s@<MANDIR>@$(MANDIR)@" \
man/lout.1 > $(MANDIR)/lout.1
chmod 644 $(MANDIR)/lout.1
cp man/c2lout.1 $(MANDIR)/c2lout.1
chmod 644 $(MANDIR)/c2lout.1
installdoc:
@echo ""
@echo "Creating DOCDIR $(DOCDIR) and copying documentation into it"
cp -r doc/* $(DOCDIR)
chmod 755 $(DOCDIR)
chmod 755 $(DOCDIR)/*
chmod 644 $(DOCDIR)/*/*
installfr:
@echo ""
@echo "Putting French error messages into $(LIBDIR)/$(LIBLOCA)/$(LOC_FR)"
mkdir $(LIBDIR)/$(LIBLOCA)/$(LOC_FR)
chmod 755 $(LIBDIR)/$(LIBLOCA)/$(LOC_FR)
mkdir $(LIBDIR)/$(LIBLOCA)/$(LOC_FR)/LC_MESSAGES
chmod 755 $(LIBDIR)/$(LIBLOCA)/$(LOC_FR)/LC_MESSAGES
cp locale/msgs.fr $(LIBDIR)/$(LIBLOCA)/$(LOC_FR)/LC_MESSAGES/msgs.$(LOC_FR)
gencat $(LIBDIR)/$(LIBLOCA)/$(LOC_FR)/LC_MESSAGES/errors.$(LOC_FR) \
$(LIBDIR)/$(LIBLOCA)/$(LOC_FR)/LC_MESSAGES/msgs.$(LOC_FR)
chmod 644 $(LIBDIR)/$(LIBLOCA)/$(LOC_FR)/LC_MESSAGES/*
installde:
@echo ""
@echo "Putting German error messages into $(LIBDIR)/$(LIBLOCA)/$(LOC_DE)"
mkdir $(LIBDIR)/$(LIBLOCA)/$(LOC_DE)
chmod 755 $(LIBDIR)/$(LIBLOCA)/$(LOC_DE)
mkdir $(LIBDIR)/$(LIBLOCA)/$(LOC_DE)/LC_MESSAGES
chmod 755 $(LIBDIR)/$(LIBLOCA)/$(LOC_DE)/LC_MESSAGES
cp locale/msgs.de $(LIBDIR)/$(LIBLOCA)/$(LOC_DE)/LC_MESSAGES/msgs.$(LOC_DE)
gencat $(LIBDIR)/$(LIBLOCA)/$(LOC_DE)/LC_MESSAGES/errors.$(LOC_DE) \
$(LIBDIR)/$(LIBLOCA)/$(LOC_DE)/LC_MESSAGES/msgs.$(LOC_DE)
chmod 644 $(LIBDIR)/$(LIBLOCA)/$(LOC_DE)/LC_MESSAGES/*
uninstall:
-rm -f $(BINDIR)/lout $(BINDIR)/c2lout
-rm -fr $(LIBDIR)
-rm -fr $(DOCDIR)
-rm -f $(MANDIR)/lout.1 $(MANDIR)/c2lout.1
clean:
-rm -f lout c2lout *.o
restart: clean uninstall
setupfiles:
@echo ""
@echo "Creating the basic five document types"
dosetup doc doc
dosetup report report
dosetup book book
dosetup slides slides
dosetup picture picture
@echo ""
@echo "The basic five with C program printing"
dosetup cdoc doc cprint
dosetup creport report cprint
dosetup cbook book cprint
dosetup cslides slides cprint
dosetup cpicture picture cprint
@echo ""
@echo "The basic five with Eiffel program printing"
dosetup edoc doc eiffelprint
dosetup ereport report eiffelprint
dosetup ebook book eiffelprint
dosetup eslides slides eiffelprint
dosetup epicture picture eiffelprint
@echo ""
@echo "The basic five with diagram printing"
dosetup ddoc doc diag
dosetup dreport report diag
dosetup dbook book diag
dosetup dslides slides diag
dosetup dpicture picture diag
@echo ""
@echo "Books with Eiffel and C program printing and diagrams"
dosetup dedoc doc eiffelprint diag
dosetup debook book eiffelprint diag
dosetup dcbook book cprint diag
|