home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 9 / CD_ASCQ_09_1193.iso / news / 4441 / mpegcode / src / makefile < prev    next >
Makefile  |  1993-09-28  |  8KB  |  229 lines

  1. # Copyright (c) 1993 The Regents of the University of California.
  2. # All rights reserved.
  3. # Permission to use, copy, modify, and distribute this software and its
  4. # documentation for any purpose, without fee, and without written agreement is
  5. # hereby granted, provided that the above copyright notice and the following
  6. # two paragraphs appear in all copies of this software.
  7. # IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR
  8. # DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT
  9. # OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF
  10. # CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  11. # THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES,
  12. # INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
  13. # AND FITNESS FOR A PARTICULAR PURPOSE.  THE SOFTWARE PROVIDED HEREUNDER IS
  14. # ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATION TO
  15. # PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
  16.  
  17. #  
  18. #  $Header: /n/picasso/users/dwallach/vid2/mpeg_encode/RCS/Makefile,v 1.3 1993/01/18 10:20:02 dwallach Exp dwallach $
  19.  
  20. ##############################################################################
  21. #
  22. # Configurable items -- you want to make sure CC points at an ANSI
  23. # compliant C compiler, and that INCLUDE and LIBDIRS specify what's
  24. # necessary for you to include and link against the PBMPLUS libraries.
  25. #
  26. #
  27.  
  28. ################################################################
  29. # PROFILING # use -pg or -p if and only if you want to profile #
  30. ################################################################
  31. PROFLAG =
  32.  
  33. #######################################################
  34. # DEBUGGING # use -g if and only if you want to debug #
  35. #######################################################
  36. DEBUGFLAG =
  37.  
  38. ###############################################################################
  39. # MISSING PROTOTYES # use -DMISSING_PROTOS if your standard headers are wrong #
  40. ###############################################################################
  41. PROTOFLAG = 
  42. #PROTOFLAG = -DMISSING_PROTOS
  43.  
  44. #################################################################
  45. # PBM DIRECTORIES # specify which directories to find pbm stuff #
  46. #################################################################
  47. # directory with libpbm.a, libpgm.a, libppm.a, libpnm.a
  48. PBMLIBDIR = ./pbmplus
  49. # directory with pbm.h, pgm.h, ppm.h, pnm.h
  50. PBMHDRDIR = ./pbmplus
  51.  
  52. ############################################################################
  53. # LIBRARIES # specify library directories; besides pbm, only need math lib #
  54. ############################################################################
  55. LIBDIRS = # -L$(PBMLIBDIR)
  56.  
  57. #####################################################################
  58. # COMPILER # specify compiler; should be ANSI-compliant if possible #
  59. #####################################################################
  60. CC = gcc
  61.  
  62. ###################################################
  63. # COMPILER FLAGS # modify for different compilers #
  64. ###################################################
  65. # use -DLONG_32 iff
  66. #    1) long's are 32 bits and
  67. #    2) int's are not
  68. #
  69. # if you don't have <netinet/in.h> then you must define one of the following
  70. #    -DFORCE_BIG_ENDIAN
  71. #    -DFORCE_LITTLE_ENDIAN
  72. #
  73. # if you are using a non-ANSI compiler, then use:
  74. #    -DNON_ANSI_COMPILER
  75. #
  76. # one other option:
  77. #    -DHEINOUS_DEBUG_MODE
  78. #
  79. # listed below are some suggested CFLAG lines for various compilers
  80.  
  81. #    gcc for DOS
  82. CFLAGS = $(INCLUDE) -Iheaders -O $(DEBUGFLAG) -Wall $(PROFLAG) $(PROTOFLAG) -DFORCE_LITTLE_ENDIAN
  83.  
  84. #    gcc
  85. #CFLAGS = $(INCLUDE) -Iheaders -O $(DEBUGFLAG) -Wall -Wmissing-prototypes $(PROFLAG) $(PROTOFLAG)
  86.  
  87. #    SUN cc
  88. #CFLAGS = $(INCLUDE) -Iheaders -O $(DEBUGFLAG) $(PROFLAG) $(PROTOFLAG) -DNON_ANSI_COMPILER
  89.  
  90. #    HP cc
  91. #CFLAGS = $(INCLUDE) -Iheaders -O $(DEBUGFLAG) $(PROFLAG) $(PROTOFLAG) -DNON_ANSI_COMPILER
  92.  
  93. #    DEC ALPHA cc
  94. #CFLAGS = $(INCLUDE) -Iheaders -O -Olimit 1200 $(DEBUGFLAG) $(PROFLAG) $(PROTOFLAG)
  95.  
  96. #     SGI cc
  97. #CFLAGS = $(INCLUDE) -Iheaders -O $(DEBUGFLAG) $(PROFLAG) $(PROTOFLAG) -cckr
  98.  
  99. #    Intel-based SVR4.0 cc
  100. #CFLAGS = $(INCLUDE) -Iheaders -O $(DEBUGFLAG) $(PROFLAG) $(PROTOFLAG) -DLONG_32 -DSVR4 -DSYSV386
  101.  
  102. #    IBM RS/6000 cc
  103. #CFLAGS = $(INCLUDE) -Iheaders -O $(DEBUGFLAG) $(PROFLAG) $(PROTOFLAG)
  104.  
  105.  
  106. #########################################################################
  107. # LIBRARIES # same for most machines; may need to add stuff for sockets #
  108. #########################################################################
  109. #    this works for most machines
  110. LIBS = -lpnm -lppm -lpgm -lpbm -lm
  111.  
  112. #    Intel-based SVR4.0
  113. #LIBS = -lpnm -lppm -lpgm -lpbm -lm -lsocket -lnsl -lgen
  114.  
  115.  
  116. ###############
  117. # OTHER STUFF #
  118. ###############
  119. PURIFY =
  120.  
  121. #
  122. # End of configurable options.  Just type make and have fun.
  123. ##############################################################################
  124.  
  125. INCLUDE = -I$(PBMHDRDIR) 
  126.  
  127. MP_BASE_OBJS = mfwddct.o postdct.o huff.o bitio.o mheaders.o
  128. MP_BASE_SRCS = mfwddct.c postdct.c huff.c bitio.c mheaders.c
  129. MP_ENCODE_OBJS = iframe.o pframe.o bframe.o psearch.o bsearch.o block.o
  130. MP_ENCODE_SRCS = iframe.c pframe.c bframe.c psearch.c bsearch.c block.c
  131. MP_OTHER_OBJS = mpeg.o subsample.o param.o rgbtoycc.o \
  132.     readframe.o combine.o jrevdct.o frame.o fsize.o
  133. MP_OTHER_SRCS = mpeg.c subsample.c param.c rgbtoycc.c \
  134.     readframe.c combine.c jrevdct.c frame.c fsize.c
  135. MP_PARALLEL_OBJS = noparall.o
  136. MP_PARALLEL_SRCS = noparall.c
  137. MP_ALL_SRCS = $(MP_BASE_SRCS) $(MP_OTHER_SRCS) $(MP_ENCODE_SRCS) \
  138.           $(MP_PARALLEL_SRCS) main.c
  139. MP_ALL_OBJS = $(MP_BASE_OBJS) $(MP_OTHER_OBJS) $(MP_ENCODE_OBJS) \
  140.           $(MP_PARALLEL_OBJS) main.o
  141. MP_INCLUDE = mproto.h mtypes.h huff.h bitio.h
  142. MP_MISC = Makefile huff.table parse_huff.pl
  143.  
  144.  
  145. all: mpeg_encode
  146.  
  147. #########
  148. # TESTS #
  149. #########
  150.  
  151. test:
  152.     mpeg_encode ../test/ts.param
  153.     cmp ..\test/ts.mpg ..\ts.mpg
  154.     rm -f ..\ts.mpg
  155.     
  156.  
  157. ############
  158. # BINARIES #
  159. ############
  160.  
  161. mpeg_encode: $(MP_ALL_OBJS)
  162.     rm -f libmpeg.a
  163.     ar r libmpeg.a $(MP_BASE_OBJS)
  164.     ar r libmpeg.a $(MP_OTHER_OBJS)
  165.     ar r libmpeg.a $(MP_ENCODE_OBJS)
  166.     ar r libmpeg.a $(MP_PARALLEL_OBJS)
  167.     ranlib libmpeg.a
  168.     $(PURIFY) $(CC) -O -o $@ -L. main.o -lmpeg $(LIBDIRS) $(LIBS)
  169.     strip $@
  170.     aout2exe $@
  171.  
  172. profile: $(MP_ALL_OBJS)
  173.     $(PURIFY) $(CC) -Bstatic -pg $(CFLAGS) -o $@ $(MP_ALL_OBJS) $(LIBDIRS) $(LIBS)
  174.  
  175. #########
  176. # OTHER #
  177. #########
  178.  
  179. #
  180. # Perl is necessary if you want to modify the Huffman RLE encoding table.
  181. #
  182. PERL = perl
  183.  
  184. # The following stuff is for the Huffman encoding tables.  It's commented-out
  185. # because you probably don't want to change this.  If you do, then uncommment
  186. # it.
  187. #
  188. # huff.h: huff.c
  189. #
  190. # huff.c: parse_huff.pl huff.table
  191. #    $(PERL) parse_huff.pl huff.table
  192.  
  193. headers.o: headers.c
  194.     $(CC) $(CFLAGS) -c headers.c
  195.  
  196. depend: huff.c
  197.     makedepend -- $(CFLAGS) -- $(MP_ALL_SRCS)
  198.  
  199. wc:;        wc -l *.[ch] headers/*.h *.pl *.table
  200. ci:;        ci -l $(MP_ALL_SRCS) $(MP_INCLUDE) $(MP_MISC)
  201. tags: $(MP_ALL_SRCS)
  202.     ctags -t $(MP_ALL_SRCS)
  203.  
  204. new:
  205.     rm -f *.o core *~ gmon.out
  206.     make depend
  207.  
  208. clean:
  209.     rm -f mpeg_enc lib*.a *.o *.exe core *~ gmon.out tmp.stat
  210.  
  211. #
  212. # WARNING: this assumes you're using GNU indent...
  213. #
  214. indent:;    indent -T FILE -T int8 -T int16 -T int32 -T uint8 -T uint16 -T uint32  -T BitBucket -T MpegFrame -T Block -T FlatBlock $(MP_ALL_SRCS)
  215.  
  216. spotless: clean    
  217.     rm -f huff.c huff.h *.pure.a
  218.     cd pbmplus; make clean
  219.  
  220. ##############################################################################
  221. # DO NOT DELETE THIS LINE -- make depend depends on it.
  222.