home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 6 File / 06-File.zip / FILE39.ZIP / Makefile < prev    next >
Makefile  |  1993-04-05  |  5KB  |  141 lines

  1. # Makefile for file(1) cmd. 
  2. # Copyright (c) Ian F. Darwin 86/09/01 - see LEGAL.NOTICE.
  3. # @(#)$Id: Makefile,v 1.34 93/04/05 10:39:30 ian Exp $
  4. #
  5. # This software is not subject to any license of the American Telephone
  6. # and Telegraph Company or of the Regents of the University of California.
  7. #
  8. # Permission is granted to anyone to use this software for any purpose on
  9. # any computer system, and to alter it and redistribute it freely, subject
  10. # to the following restrictions:
  11. #
  12. # 1. The author is not responsible for the consequences of use of this
  13. #    software, no matter how awful, even if they arise from flaws in it.
  14. #
  15. # 2. The origin of this software must not be misrepresented, either by
  16. #    explicit claim or by omission.  Since few users ever read sources,
  17. #    credits must appear in the documentation.
  18. #
  19. # 3. Altered versions must be plainly marked as such, and must not be
  20. #    misrepresented as being the original software.  Since few users
  21. #    ever read sources, credits must appear in the documentation.
  22. #
  23. # 4. This notice may not be removed or altered.
  24.  
  25. SHELL    = /bin/sh
  26. #MAGIC    = /etc/magic
  27. MAGIC    = /usr/local/etc/magic
  28. DEFS    = -DMAGIC='"$(MAGIC)"' # -Dvoid=int
  29. CC    = cc
  30. COPTS    = -O -g        # newer compilers allow both; else drop -O
  31. # For truly antique environments, use this for (dummy) include files:
  32. COPTS    = -O # -Ilocalinc
  33. CFLAGS    = $(COPTS) $(DEFS)
  34. LDFLAGS    = $(COPTS) # -Bstatic    # older gdb couldn't handle shared libs
  35. SHAR    = bundle
  36. OFILE    = /usr/bin/file        # old or distributed version, for comparison
  37. # Where new binary lives; typically /usr/local (BSD), /usr/lbin (USG).
  38. BINDIR    = /usr/local/bin
  39. # For installing our man pages; 
  40. # MANCxxx is manual section for Commands, MANFxxx is section for file formats.
  41. # MANxDIR is directory names; MANxEXT is the filename extention. Usual values:
  42. # Variable    V7        4BSD        Sys V
  43. # MANCDIR     /usr/man/man1    /usr/man/man1    /usr/man/u_man/man1
  44. # MANFDIR     /usr/man/man5    /usr/man/man5    /usr/man/u_man/man4
  45. # MANCEXT    1        1        1
  46. # MANFEXT    5        5        4
  47. # --- possible alternative for 4BSD ---
  48. # MANCDIR            /usr/local/man/man1
  49. # MANCEXT            1
  50. # or
  51. # MANCDIR            /usr/man/manl
  52. # MANCEXT            l
  53. # --- possible alternative for USG ---
  54. # MANCDIR            /usr/man/local/man1
  55. # MANCEXT            1
  56.  
  57. MANCDIR    = /usr/local/man/man1
  58. MANCEXT    = 1
  59. MANFDIR    = /usr/local/man/man4
  60. MANFEXT    = 4
  61.  
  62. # There are no system-dependant configuration options (except maybe CFLAGS).
  63. # Uncomment any of these that is missing from your "standard" library.
  64. LOCALSRCS = # localsrc/getopt.c localsrc/strtol.c \
  65. #        localsrc/strtok.c localsrc/strchr.c
  66. LOCALOBJS = # localsrc/getopt.o localsrc/strtol.o \
  67. #        localsrc/strtok.o localsrc/strchr.o
  68. # These are not compiled in unless you use -Ilocalinc, but
  69. # are not commented out as "make dist" &c use them.
  70. LOCALINC = localinc/*.h localinc/sys/*.h
  71.  
  72. SRCS = file.c apprentice.c fsmagic.c softmagic.c ascmagic.c \
  73.     compress.c is_tar.c \
  74.     print.c $(LOCALSRCS) $(LOCALINC)
  75. OBJS = file.o apprentice.o fsmagic.o softmagic.o ascmagic.o \
  76.     compress.o is_tar.o \
  77.     print.o $(LOCALOBJS)
  78.  
  79. ALLSRC = LEGAL.NOTICE README MAINT PORTING $(SRCS) *.h \
  80.     Makefile file.1 magic.4 localsrc/*.c tst/Makefile
  81. ALLMAGIC =   Magdir/Makefile Magdir/Localstuff Magdir/Header Magdir/[a-z]*
  82.  
  83. all:        file magic
  84.  
  85. TESTFILES = * tst/*
  86. try:        all $(OFILE)
  87.         cd tst; make
  88.         time $(OFILE) $(TESTFILES) >/tmp/t1 # can't use ./magic
  89.         time ./file -m ./magic $(TESTFILES) >/tmp/t2
  90.         -diff -b /tmp/t[12]
  91.         what ./file >lastnocore
  92.  
  93. file:        $(OBJS)
  94.         $(CC) $(CFLAGS) $(OBJS) -o $@
  95. lint:        $(SRCS)
  96.         lint -ha $(DEFS) $(SRCS) | tee $@
  97. magic:        Magdir
  98. #        Magdir/Makefile's "install" mv's magic to here for testing.
  99.         cd Magdir; make install
  100.  
  101. ascmagic.o:    names.h
  102.  
  103. apprentice.o ascmagic.o file.o fsmagic.o print.o softmagic.o: file.h
  104.  
  105. install:    file magic file.1 magic.4 $(BINDIR) $(MANCDIR) $(MANCDIR)
  106.         cp file        $(BINDIR)/file
  107.         cp magic    $(MAGIC)
  108.         cp file.1    $(MANCDIR)/file.$(MANCEXT)
  109.         cp magic.4    $(MANFDIR)/magic.$(MANFEXT)
  110.  
  111. clean:
  112.         rm -f *.o core file magic lint dist.* MANIFEST lastnocore
  113. clobber:
  114.         cd tst; make clean
  115.  
  116. send:        dist
  117.         ftp ftp.cs
  118.  
  119. dist:        dist.src dist.magic
  120.         @echo Now check this patchlevel!
  121.         ident patchlevel.h
  122.  
  123. dist.src:    $(ALLSRC) MANIFEST
  124. #        Some versions of shar can't handle a single file from
  125. #        a subdirectory, so we manually insert mkdir as needed.
  126. #        The point is to exclude all the generable targets in tst.
  127.         (echo mkdir localinc localinc/sys localsrc tst; \
  128.             $(SHAR) $(ALLSRC) MANIFEST) > $@
  129.  
  130. rcsdiff:    $(ALLSRC)
  131.         rcsdiff -q RCS/*
  132.  
  133. MANIFEST:    $(ALLSRC)
  134.         ident $(ALLSRC) > MANIFEST
  135. dist.magic:    Magdir
  136. #        As above, but to exclude Magdir/RCS from being shipped.
  137.         (echo mkdir Magdir; $(SHAR) $(ALLMAGIC)) >$@
  138.  
  139. tar:        $(ALLSRC) $(ALLMAGIC)
  140.         tar cvf /dev/rfd0a $(ALLSRC) $(ALLMAGIC)
  141.