Makefile.in
上传用户:zbbssh
上传日期:2007-01-08
资源大小:196k
文件大小:6k
源码类别:

CA认证

开发平台:

C/C++

  1. #
  2. # This code is pretty well tested, but not optimizing it will have
  3. # a *major* effect on speed, so its optimzation flags are separate
  4. # from the rest of the release.
  5. #
  6. # For the SPARC v8, at least, gcc produces a *much* faster library than
  7. # the SunPro C compiler.  On a 50 MHz TI TMS390Z50 SuperSPARC:
  8. #  14.5 vs.   47.2 ms per  256-bit modular exponentiation.
  9. #  77.4 vs.  317.8 ms per  512-bit modular exponentiation.
  10. # 249.0 vs. 1031.5 ms per 1024-bit modular exponentiation
  11. #
  12. CC=@CC@
  13. CFLAGS=@CFLAGS@ @CPPFLAGS@ @WARN@ @TUNE@ @DEFS@ $(DEFINE)
  14. srcdir=@srcdir@
  15. VPATH=@srcdir@
  16. # Extra object files (e.g. assembly routines)
  17. OBJS_EXT=
  18. # Extra definitions (e.g. -DBNINCLUDE=lbnfoo.h)
  19. DEFINE=
  20. SHELL = /bin/sh
  21. .SUFFIXES:
  22. .SUFFIXES: .c .h .o
  23. LD      =$(CC)
  24. LDFLAGS =@LDFLAGS@
  25. LIBS_EXT=@LIBS@
  26. RANLIB=@RANLIB@
  27. # If you plug in a machine-specific assembly file, change this list
  28. # of files here.
  29. OBJS = bn00.o lbn00.o bn.o lbnmem.o sieve.o prime.o 
  30.   bnprint.o legal.o jacobi.o germain.o
  31. BNLIB = libbn.a 
  32. all: $(BNLIB) bntest germtest
  33. check: bntest
  34. ./bntest
  35. bntest: bntest00.o $(BNLIB)
  36. $(LD) $(LDFLAGS) -o $@ bntest00.o $(BNLIB) $(LIBS_EXT)
  37. germtest: germtest.o $(BNLIB)
  38. $(LD) $(LDFLAGS) -o $@ germtest.o $(BNLIB) $(LIBS_EXT)
  39. $(BNLIB): $(OBJS)
  40. $(AR) r $@ $?
  41. $(RANLIB) $@
  42. # Here we get tricky... if we're compiling with GCC, then we actually do
  43. # a link, but with the -r flag (produce relocatable output) and with
  44. # -lgcc *only*.  This is so that the result can be linked cleanly with
  45. # code compiled with another cc, which doesn't know about -lgcc.
  46. # Presumably the lbnXX.o file, which has by fast the most math in it,
  47. # will have a call to every interesting support-library function.
  48. lbn00.o: $(srcdir)/lbn00.c $(HDRS) config.h
  49. $(CC) $(CPPFLAGS) $(CFLAGS) -I. -I$(srcdir) -o $@ @GCCMAGIC1@ lbn00.c @GCCMAGIC2@
  50. lbn16.o: $(srcdir)/lbn16.c $(HDRS) config.h
  51. $(CC) $(CPPFLAGS) $(CFLAGS) -I. -I$(srcdir) -o $@ @GCCMAGIC1@ lbn16.c @GCCMAGIC2@
  52. lbn32.o: $(srcdir)/lbn32.c $(HDRS) config.h
  53. $(CC) $(CPPFLAGS) $(CFLAGS) -I. -I$(srcdir) -o $@ @GCCMAGIC1@ lbn32.c @GCCMAGIC2@
  54. lbn64.o: $(srcdir)/lbn64.c $(HDRS) config.h
  55. $(CC) $(CPPFLAGS) $(CFLAGS) -I. -I$(srcdir) -o $@ @GCCMAGIC1@ lbn64.c @GCCMAGIC2@
  56. # The default .o rule.
  57. .c.o: config.h
  58. $(CC) $(CPPFLAGS) $(CFLAGS) -I. -I$(srcdir) -o $@ -c $<
  59. # Extra, non-obvious dependencies.  The BigNum library can be compiled
  60. # in three word sizes, and the *00.c files #include the right .c files
  61. # based on <limits.h>, which means that a single compilation will
  62. # only use a subset of these files.  Duplicated here in case someone
  63. # regenerates dependencies with cc -M and they get lost.
  64. lbn00.o: lbn16.c lbn32.c lbn64.c lbn16.h lbn32.h lbn64.h 
  65. bn00.o: bn16.c bn32.c bn64.c bn16.h bn32.h bn64.h 
  66.   bninit16.c bninit32.c bninit64.c
  67. bntest00.o: bntest16.c bntest32.c bntest64.c lbn16.h lbn32.h lbn64.h
  68. # Actual build commented out to prevent confusion by people without autoconf
  69. # Do it manually for now.
  70. configure: configure.in
  71. # autoconf
  72. # Example programs in the test subdirectory.
  73. progs: $(U_DIR)/libbn.a
  74. @(echo Compiling test drivers for bn)
  75. cd test; make
  76. clean:
  77. @$(RM) -f *.o *32.[ch] *64.[ch]
  78. BNSOURCES = lbn32.c lbn32.h bn32.c bn32.h bninit32.c bntest32.c 
  79. lbn64.c lbn64.h bn64.c bn64.h bninit64.c bntest64.c
  80. # An explicit target that can be made before distribution for
  81. # machines that don't have sed.
  82. bnsources: $(BNSOURCES)
  83. # The 16-bit versions of the code are the master versions; all else is
  84. # generated from them.  This fiddling about makes them unwriteable
  85. # to discourage improper edits.
  86. # (You didn't know that suffix rules didn't have to begin with a
  87. # period, did you?)
  88. .SUFFIXES: 16.c 16.h 32.c 32.h 64.c 64.h
  89. 16.c32.c:
  90. @test ! -f $@ -o -w $@ || chmod u+w $@ && test -w $@ || rm -f $@
  91. sed -e s/32/64/g -e s/16/32/g $< > $@
  92. @chmod a-w $@
  93. 16.h32.h:
  94. @test ! -f $@ -o -w $@ || chmod u+w $@ && test -w $@ || rm -f $@
  95. sed -e s/32/64/g -e s/16/32/g $< > $@
  96. @chmod a-w $@
  97. 16.c64.c:
  98. @test ! -f $@ -o -w $@ || chmod u+w $@ && test -w $@ || rm -f $@
  99. sed -e s/32/128/g -e s/16/64/g $< > $@
  100. @chmod a-w $@
  101. 16.h64.h:
  102. @test ! -f $@ -o -w $@ || chmod u+w $@ && test -w $@ || rm -f $@
  103. sed -e s/32/128/g -e s/16/64/g $< > $@
  104. @chmod a-w $@
  105. ### Dependencies
  106. bn.o: bn.c bn.h
  107. bn00.o: bn00.c bnsize00.h lbn.h bn16.c bn32.c bn64.c lbn16.c lbn32.h 
  108.   lbn64.h lbnmem.h bn16.h bn32.h bn64.h bn.h kludge.h bninit16.c 
  109.   bninit32.c bninit64.c
  110. bn16.o: bn16.c lbn.h lbn16.h lbnmem.h bn16.h bn.h kludge.h
  111. bn32.o: bn32.c lbn.h lbn32.h lbnmem.h bn32.h bn.h kludge.h
  112. bn64.o: bn64.c lbn.h lbn64.h lbnmem.h bn64.h bn.h kludge.h
  113. bn68000.o: bn68000.c lbn.h lbn68000.h bn16.h bn32.h
  114. bn8086.o: bn8086.c lbn.h bn64.h lbn8086.h bn32.h
  115. bninit16.o: bninit16.c bn.h bn16.h
  116. bninit32.o: bninit32.c bn.h bn32.h
  117. bninit64.o: bninit64.c bn.h bn64.h
  118. bnprint.o: bnprint.c bn.h bnprint.h kludge.h
  119. bntest00.o: bntest00.c bnsize00.h lbn.h bntest16.c bntest32.c 
  120.   bntest64.c cputime.h lbn16.h lbn32.h lbn64.h kludge.h
  121. bntest16.o: bntest16.c cputime.h lbn16.h lbn.h kludge.h
  122. bntest32.o: bntest32.c cputime.h lbn32.h lbn.h kludge.h
  123. bntest64.o: bntest64.c cputime.h lbn64.h lbn.h kludge.h
  124. germain.o: germain.c bn.h germain.h jacobi.h lbnmem.h sieve.h kludge.h
  125. germtest.o: germtest.c bn.h germain.h sieve.h cputime.h bnprint.h
  126. jacobi.o: jacobi.c bn.h jacobi.h
  127. lbn00.o: lbn00.c bnsize00.h lbn.h lbn16.c lbn16.h lbn32.c lbn32.h 
  128.   lbn64.c lbn64.h lbnmem.h legal.h kludge.h
  129. lbn16.o: lbn16.c lbn.h lbn16.h lbnmem.h legal.h kludge.h
  130. lbn32.o: lbn32.c lbn.h lbn32.h lbnmem.h legal.h kludge.h
  131. lbn64.o: lbn64.c lbn.h lbn64.h lbnmem.h legal.h kludge.h
  132. lbn68000.o: lbn68000.c lbn.h lbn68000.h
  133. lbn68020.o: lbn68020.c lbn.h lbn68020.h
  134. lbnmem.o: lbnmem.c lbn.h lbnmem.h kludge.h
  135. lbnppc.o: lbnppc.c lbnppc.h ppcasm.h
  136. legal.o: legal.c legal.h
  137. prime.o: prime.c bn.h lbnmem.h prime.h sieve.h kludge.h
  138. sieve.o: sieve.c bn.h sieve.h kludge.h
  139. sizetest.c: bnsize00.h