# # Root directory. Mainly useful for package building; leave empty for # normal installation. # ROOT= # # The destination directory for the "sh" and "jsh" binaries. # SV3BIN=/usr/5bin # # Location for manual pages (with man1 below). # MANDIR=/usr/share/man/5man # # Enable this definition if spell checking should be done for the # "cd" special command. # #SPELL=-DSPELL # # A BSD-compatible install command. # UCBINST=/usr/ucb/install # # The strip command that is used at installation time. # STRIP=strip # # A command to create the link from "jsh" to "sh". # LNS=ln -s # # Uncomment the following line to compile with diet libc. -Ifakewchar might # be usable for other environments without wide character support too. # #CC=diet gcc -Ifakewchar # # Compiler flags. # CFLAGS=-O # # Flags for the C preprocessor. # CFLAGS=-D_GNU_SOURCE # # A define for large file support, if necessary. # LARGEF=-D_FILE_OFFSET_BITS=64L # # The compiler warning options. # WERROR=-Werror WARN = -Wchar-subscripts -Wformat -Wno-format-y2k -Wimplicit \ -Wmissing-braces -Wsequence-point -Wreturn-type -Wtrigraphs \ -Wunused-function -Wunused-label -Wunused-variable -Wunused-value \ -Wuninitialized -Wmultichar -Wpointer-arith $(WERROR) WARN= # # End of adjustable settings. # OBJ = args.o blok.o bltin.o cmd.o ctype.o defs.o echo.o error.o \ expand.o fault.o func.o hash.o hashserv.o io.o jobs.o \ macro.o main.o msg.o name.o print.o pwd.o service.o \ setbrk.o stak.o string.o test.o ulimit.o word.o xec.o \ gmatch.o getopt.o strsig.o version.o mapmalloc.o umask.o .c.o: ; $(CC) -c $(CFLAGS) $(CPPFLAGS) $(LARGEF) $(SPELL) $(WARN) $< all: sh jsh sh.1.out sh: $(OBJ) $(CC) $(LDFLAGS) $(OBJ) $(LIBS) -o sh jsh: sh rm -f jsh $(LNS) sh jsh sh.1.out: sh.1 test "x$(SPELL)" != x && cat sh.1 >$@ || \ sed '/BEGIN SPELL/,/END SPELL/d' $@ install: all test -d $(ROOT)$(SV3BIN) || mkdir -p $(ROOT)$(SV3BIN) $(UCBINST) -c -m 755 sh $(ROOT)$(SV3BIN)/sh $(STRIP) $(ROOT)$(SV3BIN)/sh rm -f $(ROOT)$(SV3BIN)/jsh cd $(ROOT)$(SV3BIN) && $(LNS) sh jsh test -d $(ROOT)$(MANDIR)/man1 || mkdir -p $(ROOT)$(MANDIR)/man1 $(UCBINST) -c -m 644 sh.1.out $(ROOT)$(MANDIR)/man1/sh.1 rm -f $(ROOT)$(MANDIR)/man1/jsh.1 cd $(ROOT)$(MANDIR)/man1 && $(LNS) sh.1 jsh.1 maninstall: sh.1.out $(UCBINST) -c -m 644 sh.1.out $(ROOT)$(MANDIR)/man1/sh.1 diet: $(MAKE) CC='diet gcc -Ifakewchar' CFLAGS='-Os -fomit-frame-pointer' \ STRIP='strip -s -R .comment -R .note' WERROR= dietinstall: ldd sh >/dev/null 2>&1 && { echo dynamic; exit 1; } || : $(MAKE) install SV3BIN=/sbin world: $(MAKE) clean $(MAKE) sudo $(MAKE) install $(MAKE) clean $(MAKE) diet sudo $(MAKE) dietinstall $(MAKE) clean clean: rm -f $(OBJ) sh jsh sh.1.out core log *~ mrproper: clean args.o: args.c defs.h mac.h mode.h name.h stak.h brkincr.h ctype.h blok.o: blok.c defs.h mac.h mode.h name.h stak.h brkincr.h ctype.h bltin.o: bltin.c defs.h mac.h mode.h name.h stak.h brkincr.h ctype.h \ sym.h hash.h cmd.o: cmd.c defs.h mac.h mode.h name.h stak.h brkincr.h ctype.h sym.h ctype.o: ctype.c defs.h mac.h mode.h name.h stak.h brkincr.h ctype.h defs.o: defs.c mode.h name.h echo.o: echo.c defs.h mac.h mode.h name.h stak.h brkincr.h ctype.h error.o: error.c defs.h mac.h mode.h name.h stak.h brkincr.h ctype.h expand.o: expand.c defs.h mac.h mode.h name.h stak.h brkincr.h ctype.h fault.o: fault.c defs.h mac.h mode.h name.h stak.h brkincr.h ctype.h func.o: func.c defs.h mac.h mode.h name.h stak.h brkincr.h ctype.h getopt.o: getopt.c gmatch.o: gmatch.c mbtowi.h hash.o: hash.c hash.h defs.h mac.h mode.h name.h stak.h brkincr.h ctype.h hashserv.o: hashserv.c hash.h defs.h mac.h mode.h name.h stak.h brkincr.h \ ctype.h io.o: io.c defs.h mac.h mode.h name.h stak.h brkincr.h ctype.h dup.h jobs.o: jobs.c defs.h mac.h mode.h name.h stak.h brkincr.h ctype.h macro.o: macro.c defs.h mac.h mode.h name.h stak.h brkincr.h ctype.h \ sym.h main.o: main.c defs.h mac.h mode.h name.h stak.h brkincr.h ctype.h sym.h \ hash.h timeout.h dup.h mapmalloc.o: mapmalloc.c msg.o: msg.c defs.h mac.h mode.h name.h stak.h brkincr.h ctype.h sym.h name.o: name.c defs.h mac.h mode.h name.h stak.h brkincr.h ctype.h print.o: print.c defs.h mac.h mode.h name.h stak.h brkincr.h ctype.h pwd.o: pwd.c mac.h defs.h mode.h name.h stak.h brkincr.h ctype.h service.o: service.c defs.h mac.h mode.h name.h stak.h brkincr.h ctype.h setbrk.o: setbrk.c defs.h mac.h mode.h name.h stak.h brkincr.h ctype.h stak.o: stak.c defs.h mac.h mode.h name.h stak.h brkincr.h ctype.h string.o: string.c defs.h mac.h mode.h name.h stak.h brkincr.h ctype.h strsig.o: strsig.c test.o: test.c defs.h mac.h mode.h name.h stak.h brkincr.h ctype.h ulimit.o: ulimit.c defs.h mac.h mode.h name.h stak.h brkincr.h ctype.h umask.o: umask.c defs.h mac.h mode.h name.h stak.h brkincr.h ctype.h version.o: version.c word.o: word.c defs.h mac.h mode.h name.h stak.h brkincr.h ctype.h sym.h xec.o: xec.c defs.h mac.h mode.h name.h stak.h brkincr.h ctype.h sym.h \ hash.h