Imakefile revision 195609
1182130SimpXCOMM 2182130SimpXCOMM $tcsh: Imakefile,v 1.86 2007/03/19 23:25:02 christos Exp $ 3182130SimpXCOMM 4182130SimpXCOMM Imakefile for tcsh 6.12 5182130SimpXCOMM Marc Horowitz, MIT SIPB 6182130SimpXCOMM 7182130Simp 8182130Simp#ifdef DestDir 9182130Simp#undef DestDir 10182130Simp#endif 11182130Simp#ifdef ManSuffix 12182130Simp#undef ManSuffix 13182130Simp#endif 14182130Simp 15182130Simp/* All config options go in a separate file. */ 16182130Simp 17182130Simp#include "imake.config" 18182130Simp 19182130Simp#ifndef HasGcc 20182130Simp# define HasGcc 0 21182130Simp#endif 22182130Simp 23182130Simp#ifndef HasGcc2 24182130Simp# define HasGcc2 0 25182130Simp#endif 26182130Simp 27182130Simp/* This is a giant conditional block. It should be set up right for 28182130Simpplatforms which are in here, but it may need to be changed for new 29182130Simpones. Please send in your fixes and additions! */ 30182130Simp 31182133Simp/**** tcsh configuration defines ****/ 32182133Simp 33227750Smiwi/* specific platforms */ 34182130Simp 35182130Simp#ifndef ConfigH 36182130Simp# ifdef UltrixArchitecture 37182130Simp# define ConfigH ultrix 38182130Simp# endif 39182130Simp 40182133Simp# ifdef UxpArchitecture 41182133Simp# define ConfigH sysv4 42182133Simp# endif 43182133Simp 44227750Smiwi# if defined(LinuxArchitecture) || defined(GNUArchitecture) 45227750Smiwi# define ConfigH linux 46182133Simp# endif 47182133Simp 48182133Simp# ifdef AlphaArchitecture 49182133Simp# if !defined(LinuxArchitecture) && !defined(GNUArchitecture) 50182133Simp# define ConfigH decosf1 51182133Simp# endif 52182133Simp# if !HasGcc 53182133Simp# define MyCflags -std1 -Olimit 2000 54182133Simp# else 55182130Simp# define NoCombineRegs 56182130Simp# endif 57182130Simp# endif 58182130Simp 59182130Simp# if defined(VaxArchitecture) && !defined(UltrixArchitecture) 60182130Simp# define ConfigH bsd 61182133Simp# endif 62182133Simp 63182133Simp# ifdef NeXTArchitecture 64182133Simp# define ConfigH mach 65182130Simp# endif 66182133Simp 67182133Simp# if defined(SunArchitecture) 68182133Simp# if (OSMajorVersion == 3) 69182133Simp# define ConfigH sunos35 70182139Simp# else 71182130Simp# if (OSMajorVersion == 4) 72182130Simp# if (OSMinorVersion == 0) 73182130Simp# define ConfigH sunos40 74182130Simp# else /* OSMinorVersion == 1 */ 75182130Simp# if (OSTeenyVersion == 3) 76182130Simp# define ConfigH sunos413 77182130Simp# else /* OsTeenyVersion in [0,1,2] */ 78182130Simp# define ConfigH sunos41 79182130Simp# endif 80182130Simp# endif 81182130Simp# define NoCombineRegs 82182130Simp# else /* OSMajorVersion == 5 */ 83182130Simp# if (OSMinorVersion < 3) 84182130Simp# if (OSMinorVersion < 2) 85182130Simp# define ConfigH sol2 86182130Simp# else 87182130Simp# define ConfigH sol22 88182130Simp# endif 89233648Seadler# else 90182133Simp# if (OSMinorVersion < 4) 91233648Seadler# define ConfigH sol23 92233648Seadler# else 93182133Simp# if (OSMinorVersion < 6) 94182130Simp# define ConfigH sol24 95182133Simp# else 96182130Simp# define ConfigH sol26 97182130Simp# endif 98182130Simp# endif 99# endif 100# define NoCombineRegs 101# endif 102# endif 103# endif 104 105# ifdef HPArchitecture 106/* For some stupid reason makedepend on HP requires this */ 107DEPENDFLAGS = -o.o 108# if (OSMajorVersion >= 8) 109# define ConfigH hpux8 110# else 111# define ConfigH hpux7 112# endif 113# endif 114 115# ifdef CrayArchitecture 116# define ConfigH cray 117# endif 118 119# ifdef SGIArchitecture 120# define ConfigH irix 121# define UseLibBSD 122# if (OSMajorVersion < 5) 123# ifdef you_are_using_yp 124# define UseSunLib 125# endif 126# if !HasGCC 127# define MyStdc -D__STDC__ 128# if SGICompilerMajorVersion < 4 129CCOPTIONS=-float # We don't want -cckr and -prototypes 130# endif 131# endif 132# endif 133# if (OSMajorVersion == 6) 134# if (OSMinorVersion >= 2) 135# undef UseLibBSD 136# define ConfigH irix62 137# endif 138# endif 139# endif 140 141# ifdef IBMArchitecture 142# undef UseLibBSD 143# if (SystemV == YES) 144# define ConfigH aix 145# if OSMajorVersion < 3 146# if OSMinorVersion < 2 147# define UseLibBSD 148# endif 149# endif 150# else 151# define ConfigH bsd 152# define AOSArchitecture 153# endif 154# endif 155 156 157#ifdef AOSArchitecture 158#define MyStdc -U__STDC__ 159#endif 160 161# if defined(MipsBsdArchitecture) || defined(MipsSysvArchitecture) 162# define ConfigH mips 163# endif 164 165# ifdef DguxArchitecture 166# define ConfigH dgux 167# endif 168 169# ifdef ConvexArchitecture 170# define ConfigH convex 171# endif 172 173# if defined(SQNTArchitecture) || defined(SequentArchitecture) 174# define ConfigH sequent 175# endif 176 177# ifdef MacIIArchitecture 178# define ConfigH mac2 179# endif 180 181# ifdef MinixArchitecture 182/* Maybe conditional on MACH? */ 183SYSSRCS=mi.termios.c mi.wait.h mi.varargs.h 184SYSOBJS=mi.termios.${SUF} 185EXTF=ma.setp.c vms.termcap.c 186# else 187/* Maybe conditional on MACH? */ 188SYSSRCS=ma.setp.c 189SYSOBJS=ma.setp.${SUF} 190EXTF=mi.termios.c mi.wait.h mi.varargs.h vms.termcap.c 191# endif 192 193# ifdef i386Isc 194# if IscVersion != 202 195# define ConfigH isc 196# define UseLibCposix 197# else 198# define ConfigH isc202 199# endif 200# endif /* i386Isc */ 201 202# ifdef OpenBSDArchitecture 203# define ConfigH bsd4.4 204# endif /* OpenBsdArchitecture */ 205 206# ifdef NetBSDArchitecture 207# define ConfigH bsd4.4 208# endif /* NetBsdArchitecture */ 209 210# ifdef FreeBSDArchitecture 211# define ConfigH bsd4.4 212# endif /* FreeBsdArchitecture */ 213 214# ifdef MidnightBSDArchitecture 215# define ConfigH bsd4.4 216# endif /* MidnightBsdArchitecture */ 217 218# ifdef i386SVR4Architecture 219# define ConfigH sysv4 220# ifdef DELL 221# define NoCombineRegs 222# endif 223# endif 224 225#endif /* !ConfigH */ 226 227/* generic os's */ 228 229#ifndef ConfigH 230 231#if (SystemV == YES) 232#define ConfigH sysv3 233#else 234/* why this as a default? Why not? */ 235#define ConfigH bsd 236#endif 237 238#endif /* !ConfigH */ 239 240/**** libraries ****/ 241 242#if (SystemV == NO) || defined(HPArchitecture) || \ 243 defined(SQNTArchitecture) || defined(SequentArchitecture) || \ 244 defined(MacIIArchitecture) || defined(UseLibTermcap) 245LIBTERMCAP = -ltermcap 246#else 247LIBTERMCAP = 248#endif 249 250#if defined(SQNTArchitecture) || defined(SequentArchitecture) 251LIBSQNT=-lsocket -linet -lnsl -lseq 252#endif 253 254/* This may not be good enough - I don't have access to enough systems 255to really test it. */ 256#if (SystemV == YES) || defined(UseLibCurses) && !defined(HPArchitecture) 257LIBCURSES = -lcurses 258#else 259LIBCURSES = 260#endif 261 262#if defined(UseLibNet) 263LIBNET = -lnet 264#else 265LIBNET = 266#endif 267 268#if defined(UseLibSocket) 269LIBSOCKET = -lsocket 270#else 271LIBSOCKET = 272#endif 273 274#if defined(UseLibBSD) 275LIBBSD = -lbsd 276#else 277LIBBSD = 278#endif 279 280#if (defined(SGIArchitecture) && \ 281 (OSMajorVersion == 3) && (OSMinorVersion == 3)) || \ 282 defined(UseLibC_S) 283LIBC_S = -lc_s 284#else 285LIBC_S = 286#endif 287 288#if defined(UseLibSun) 289LIBSUN = -lsun 290#else 291LIBSUN = 292#endif 293 294#if defined(UseLibCposix) 295LIBCPOSIX = -lcposix 296#else 297LIBCPOSIX = 298#endif 299 300#if defined(UseLibInet) 301LIBINET = -linet 302#else 303LIBINET = 304#endif 305 306#if defined(UseLibDir) 307LIBDIRECT = -ldir 308#else 309LIBDIRECT = 310#endif 311 312#if defined(UseLibX) 313LIBX = -lx 314#else 315LIBX = 316#endif 317 318#if defined(UseLibIntl) 319LIBINTL = -lintl 320#else 321LIBINTL = 322#endif 323 324#if (HasLibCrypt == YES) 325LIBCRYPT = -lcrypt 326#else 327LIBCRYPT = 328#endif 329 330#if defined(MacIIArchitecture) || defined(UseLibPosix) 331LIBPOSIX = -lposix 332#else 333LIBPOSIX = 334#endif 335 336#if defined(ATTArchitecture) || defined(UseLibDirent) 337LIBDIRECTENT = -ldirent 338#else 339LIBDIRECTENT = 340#endif 341 342/* The order here is significant. Although nothing uses all of these, 343some platforms which use more than one do care about the order. */ 344 345SYSLIBS = $(LIBPOSIX) $(LIBDIRECTENT) $(LIBTERMCAP) $(LIBCURSES) \ 346 $(LIBNET) $(LIBINTL) $(LIBSOCKET) $(LIBSUN) $(LIBBSD) $(LIBCPOSIX) \ 347 $(LIBINET) $(LIBDIRECT) $(LIBX) $(LIBC_S) $(LIBSQNT) $(LIBCRYPT) 348 349/* Past here, nothing should need to be changed to compile on a different 350platform, unless you have a really weird architecture. */ 351 352#ifdef MyCC 353CC = MyCC 354#else 355# if HasGcc 356# if HasGcc2 357CC = gcc 358# else 359# ifdef NoCombineRegs 360CC = gcc -finline-functions -fstrength-reduce 361# else 362CC = gcc -fcombine-regs -finline-functions -fstrength-reduce 363# endif 364# endif 365# else 366CC = cc 367# endif 368#endif 369 370#ifdef HESIOD 371HESLIB = -L/usr/athena/lib -lhesiod 372/* it seems to me that the -I shouldn't be necessary, but there seems 373to be a bug in the Imake stuff, so here it is. */ 374HESDEF = -DHESIOD -I/usr/athena/include 375#else 376HESLIB = 377HESDEF = 378#endif 379 380#ifdef AFS 381#ifndef AFSDIR 382AFSDIR = /usr/afsws 383#endif 384#ifdef AFS33 385#define AFS33LIB -laudit 386#else 387#define AFS33LIB 388#endif 389/* Auxilliary libs needed for AFS */ 390/* Both HPUX and Solaris need the BSD libraries. We need -lc before 391 * the bsd library to avoid using any more of it than is necessary. 392 */ 393#if defined(HPArchitecture) 394#define AFSAUXLIB -lc -lBSD 395/* This is probably a kludge, but so is imake. */ 396#else 397#if defined(SunArchitecture) && (OSMajorVersion == 5) 398#define AFSAUXLIB -lsocket -lnsl -lc -lucb 399#else 400#define AFSAUXLIB 401#endif 402#endif /* AFSAUXLIB */ 403AFSLIB = -L$(AFSDIR)/lib -L$(AFSDIR)/lib/afs -lkauth -lprot -lubik\ 404 -lauth -lrxkad -lsys -ldes -lrx -llwp -lcom_err\ 405 $(AFSDIR)/lib/afs/util.a AFS33LIB AFSAUXLIB 406AFSDEF = -DAFS -I$(AFSDIR)/include 407#else 408AFSLIB = 409AFSDEF = 410#endif 411 412/* This is encore specific, but I don't know what encore's #define is, 413and it shouldn't hurt to have it here, so here it is */ 414PARALLEL=12 # Make the multi-max run fast. 415 416#ifndef TcshTop 417#define TcshTop /usr/local 418#endif 419TCSHTOP = TcshTop 420 421#ifndef ManSuffix 422#define ManSuffix 1 423#endif 424MANSUFFIX = ManSuffix 425 426#ifdef TcshPath 427PATH_TCSHELL = TcshPath 428TCSHPATH = -D_PATH_TCSHELL='"$(PATH_TCSHELL)"' 429#else 430TCSHPATH = 431#endif 432 433#ifdef DestBin 434TCSH_BINDIR = DestBin 435#else 436TCSH_BINDIR = $(TCSHTOP)/bin 437#endif 438#ifdef DestMan 439TCSH_MANDIR = DestMan 440#else 441TCSH_MANDIR = $(TCSHTOP)/man/man$(MANSUFFIX) 442#endif 443 444LOCALLIBS = 445 446#ifndef MyCflags 447#define MyCflags 448#endif 449 450#ifndef MyDefines 451#define MyDefines 452#endif 453 454#ifndef MyIncludes 455#define MyIncludes 456#endif 457 458#ifndef MyStdc 459#define MyStdc 460#endif 461 462#ifdef CDebugFlags 463CDEBUGFLAGS = CDebugFlags 464#else 465# if HasGcc2 466CDEBUGFLAGS = -O2 467# else 468CDEBUGFLAGS = -O 469# endif 470#endif 471 472 473#ifdef HostType 474HOSTTYPE=HostType 475HTDEF = -DHOSTTYPE='"$(HOSTTYPE)"' 476#else 477HTDEF = 478#endif 479 480DEFINES = $(TCSHPATH) $(HESDEF) $(AFSDEF) $(HTDEF) MyDefines MyCflags MyStdc 481INCLUDES = -I. MyIncludes 482#ifdef MyLibs 483LDLIBS = MyLibs 484#endif 485 486SUF = o 487VERSION = 6.12 488 489SHSRCS= sh.c sh.dir.c sh.dol.c sh.err.c sh.exec.c \ 490 sh.char.c sh.exp.c sh.file.c sh.func.c \ 491 sh.glob.c sh.hist.c sh.init.c sh.lex.c \ 492 sh.misc.c sh.parse.c sh.print.c sh.proc.c \ 493 sh.sem.c sh.set.c sh.time.c glob.c \ 494 sh.char.h sh.dir.h sh.proc.h sh.h \ 495 sh.decls.h glob.h ${SYSSRCS} 496SHOBJS= sh.${SUF} sh.dir.${SUF} sh.dol.${SUF} sh.err.${SUF} sh.exec.${SUF} \ 497 sh.char.${SUF} sh.exp.${SUF} sh.file.${SUF} sh.func.${SUF} \ 498 sh.glob.${SUF} sh.hist.${SUF} sh.init.${SUF} sh.lex.${SUF} \ 499 sh.misc.${SUF} sh.parse.${SUF} sh.print.${SUF} sh.proc.${SUF} \ 500 sh.sem.${SUF} sh.set.${SUF} sh.time.${SUF} glob.${SUF} ${SYSOBJS} 501 502TWSRCS= tw.decls.h tw.h tw.help.c tw.init.c tw.parse.c tw.spell.c \ 503 tw.comp.c tw.color.c 504TWOBJS= tw.help.${SUF} tw.init.${SUF} tw.parse.${SUF} tw.spell.${SUF} \ 505 tw.comp.${SUF} tw.color.${SUF} 506 507EDSRCS= ed.chared.c ed.decls.h ed.defns.c ed.h ed.init.c ed.inputl.c \ 508 ed.refresh.c ed.screen.c ed.xmap.c ed.term.c ed.term.h 509EDOBJS= ed.chared.${SUF} ed.refresh.${SUF} ed.screen.${SUF} ed.init.${SUF} \ 510 ed.inputl.${SUF} ed.defns.${SUF} ed.xmap.${SUF} ed.term.${SUF} 511 512TCSRCS= tc.alloc.c tc.bind.c tc.const.c tc.decls.h tc.disc.c \ 513 tc.func.c tc.os.c tc.os.h tc.printf.c tc.prompt.c \ 514 tc.sched.c tc.sig.c tc.sig.h tc.str.c sh.types.h tc.vers.c tc.wait.h \ 515 tc.who.c tc.h 516TCOBJS= tc.alloc.${SUF} tc.bind.${SUF} tc.const.${SUF} tc.defs.${SUF} \ 517 tc.disc.${SUF} tc.func.${SUF} tc.os.${SUF} tc.printf.${SUF} \ 518 tc.prompt.${SUF} tc.sched.${SUF} tc.sig.${SUF} tc.str.${SUF} \ 519 tc.vers.${SUF} tc.who.${SUF} 520 521MISCF = Makefile.std Fixes MAKEDIFFS MAKESHAR NewThings README FAQ \ 522 WishList config_f.h eight-bit.me glob.3 patchlevel.h \ 523 pathnames.h tcsh.man Ported src.desc Imakefile imake.config \ 524 README.imake complete.tcsh vmsreadme.txt Makefile.vms termcap.vms \ 525 snames.h host.defs gethost.c tcsh.man2html Makefile.in configure.in \ 526 Makefile.win32 527CONFSRCS=config/[a-z]* 528 529 530SRCS = $(SHSRCS) $(TWSRCS) $(EDSRCS) $(TCSRCS) 531OBJS = $(SHOBJS) $(TWOBJS) $(EDOBJS) $(TCOBJS) 532 533ALLSRCS= $(MISCF) $(SRCS) $(EXTF) 534 535AllTarget(tcsh) 536 537ed.defns.h: config.h ed.defns.c 538 @rm -f $@ 539 @echo '/* Do not edit this file, make creates it. */' > $@ 540 @echo '#ifndef _h_ed_defns' >> $@ 541 @echo '#define _h_ed_defns' >> $@ 542 egrep '[FV]_' ed.defns.c | egrep '^#define' >> $@ 543 @echo '#endif /* _h_ed_defns */' >> $@ 544 545sh.err.h: config.h sh.err.c 546 @rm -f $@ 547 @echo '/* Do not edit this file, make creates it. */' > $@ 548 @echo '#ifndef _h_sh_err' >> $@ 549 @echo '#define _h_sh_err' >> $@ 550 egrep 'ERR_' sh.err.c | egrep '^#define' >> $@ 551 @echo '#endif /* _h_sh_err */' >> $@ 552 553tc.const.h: config.h tc.const.c 554 @rm -f $@ 555 @echo '/* Do not edit this file, make creates it. */' > $@ 556 @echo '#ifndef _h_tc_const' >> $@ 557 @echo '#define _h_tc_const' >> $@ 558 ${CC} -E $(INCLUDES) ${DEFINES} -D_h_tc_const tc.const.c | \ 559 grep 'Char STR' | \ 560 sed -e 's/Char \([a-zA-Z0-9_]*\)\[\].*/extern Char \1[];/' | \ 561 sort >> $@ 562 @echo '#endif /* _h_tc_const */' >> $@ 563 564config.h: config_f.h 565 cp config/ConfigH config.h 566 567$(OBJS): sh.err.h tc.const.h ed.defns.h 568 569tar.Z: 570 rm -f tcsh-${VERSION}.tar.Z 571 rm -rf tcsh-${VERSION} 572 mkdir tcsh-${VERSION} tcsh-${VERSION}/config 573 cp ${ALLSRCS} tcsh-${VERSION} 574 cp ${CONFSRCS} tcsh-${VERSION}/config 575 tar cf - nls/Makefile nls/?*/set?* | (cd tcsh-${VERSION}; tar xpf -) 576 tar cvf - tcsh-${VERSION} | compress > tcsh-${VERSION}.tar.Z 577 rm -rf tcsh-${VERSION} 578 579tar.gz: 580 rm -f tcsh-${VERSION}.tar.gz 581 rm -rf tcsh-${VERSION} 582 mkdir tcsh-${VERSION} tcsh-${VERSION}/config 583 cp ${ALLSRCS} tcsh-${VERSION} 584 cp ${CONFSRCS} tcsh-${VERSION}/config 585 tar cf - nls/Makefile nls/?*/set?* | (cd tcsh-${VERSION}; tar xpf -) 586 tar cvf - tcsh-${VERSION} | gzip > tcsh-${VERSION}.tar.gz 587 rm -rf tcsh-${VERSION} 588 589shar: 590 rm -f tcsh-*.shar 591 rm -rf tcsh-${VERSION} 592 mkdir tcsh-${VERSION} tcsh-${VERSION}/config 593 cp ${ALLSRCS} tcsh-${VERSION} 594 cp ${CONFSRCS} tcsh-${VERSION}/config 595 tar cf - nls/Makefile nls/?*/set?* | (cd tcsh-${VERSION}; tar xpf -) 596 MAKESHAR -v -n tcsh-${VERSION} tcsh-${VERSION} \ 597 tcsh-${VERSION}/?* tcsh-${VERSION}/config/?* \ 598 tcsh-${VERSION}/?*/set?* 599 rm -rf tcsh-${VERSION} 600 601catalogs: 602 @(cd nls; make catalogs) 603 604world: 605 $(MAKE) clean ; $(MAKE) depend ; $(MAKE) tcsh ; $(MAKE) install 606 607clean:: 608 rm -f ed.defns.h sh.err.h tc.const.h config.h tc.defs.* 609 rm -f tcsh.*.m tcsh.*.cat 610 611depend:: config.h ed.defns.h sh.err.h tc.const.h $(SRCS) tc.defs.c 612 613tc.defs.${SUF}: tc.defs.c sh.h 614 615tc.defs.c: gethost host.defs 616 @rm -f $@ 617 @echo "/* Do not edit this file, make creates it */" > $@ 618 ./gethost host.defs >> $@ 619 620ALIB=$(HESLIB) $(AFSLIB) $(SYSLIBS) 621AINC=ed.defns.h sh.err.h tc.const.h sh.h 622 623NormalProgramTarget(tcsh, $(OBJS), $(AINC), $(LOCALLIBS), $(ALIB)) 624NormalProgramTarget(gethost, gethost.${SUF}, $(AINC), $(LOCALLIBS), $(ALIB)) 625 626InstallProgram(tcsh,$(TCSH_BINDIR)) 627InstallManPage(tcsh,$(TCSH_MANDIR)) 628DependTarget() 629