Imakefile revision 195609
1XCOMM 2XCOMM $tcsh: Imakefile,v 1.86 2007/03/19 23:25:02 christos Exp $ 3XCOMM 4XCOMM Imakefile for tcsh 6.12 5XCOMM Marc Horowitz, MIT SIPB 6XCOMM 7 8#ifdef DestDir 9#undef DestDir 10#endif 11#ifdef ManSuffix 12#undef ManSuffix 13#endif 14 15/* All config options go in a separate file. */ 16 17#include "imake.config" 18 19#ifndef HasGcc 20# define HasGcc 0 21#endif 22 23#ifndef HasGcc2 24# define HasGcc2 0 25#endif 26 27/* This is a giant conditional block. It should be set up right for 28platforms which are in here, but it may need to be changed for new 29ones. Please send in your fixes and additions! */ 30 31/**** tcsh configuration defines ****/ 32 33/* specific platforms */ 34 35#ifndef ConfigH 36# ifdef UltrixArchitecture 37# define ConfigH ultrix 38# endif 39 40# ifdef UxpArchitecture 41# define ConfigH sysv4 42# endif 43 44# if defined(LinuxArchitecture) || defined(GNUArchitecture) 45# define ConfigH linux 46# endif 47 48# ifdef AlphaArchitecture 49# if !defined(LinuxArchitecture) && !defined(GNUArchitecture) 50# define ConfigH decosf1 51# endif 52# if !HasGcc 53# define MyCflags -std1 -Olimit 2000 54# else 55# define NoCombineRegs 56# endif 57# endif 58 59# if defined(VaxArchitecture) && !defined(UltrixArchitecture) 60# define ConfigH bsd 61# endif 62 63# ifdef NeXTArchitecture 64# define ConfigH mach 65# endif 66 67# if defined(SunArchitecture) 68# if (OSMajorVersion == 3) 69# define ConfigH sunos35 70# else 71# if (OSMajorVersion == 4) 72# if (OSMinorVersion == 0) 73# define ConfigH sunos40 74# else /* OSMinorVersion == 1 */ 75# if (OSTeenyVersion == 3) 76# define ConfigH sunos413 77# else /* OsTeenyVersion in [0,1,2] */ 78# define ConfigH sunos41 79# endif 80# endif 81# define NoCombineRegs 82# else /* OSMajorVersion == 5 */ 83# if (OSMinorVersion < 3) 84# if (OSMinorVersion < 2) 85# define ConfigH sol2 86# else 87# define ConfigH sol22 88# endif 89# else 90# if (OSMinorVersion < 4) 91# define ConfigH sol23 92# else 93# if (OSMinorVersion < 6) 94# define ConfigH sol24 95# else 96# define ConfigH sol26 97# endif 98# 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