home *** CD-ROM | disk | FTP | other *** search
/ Programming Win32 Under the API / ProgrammingWin32UnderTheApiPatVillani.iso / src / mingw-runtime-19991107 / mingw / Makefile.in < prev    next >
Encoding:
Makefile  |  1999-11-07  |  7.1 KB  |  260 lines

  1. # Makefile.in for the winsup/mingw directory.
  2. # Copyright (c) 1995, 1996, 1997, 1998 Cygnus Solutions
  3.  
  4. # This program is free software; you can redistribute it and/or modify
  5. # it under the terms of the GNU General Public License as published by
  6. # the Free Software Foundation; either version 2 of the License, or
  7. # (at your option) any later version.
  8. #
  9. # This program is distributed in the hope that it will be useful,
  10. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  12. # GNU General Public License for more details.
  13. #
  14. # You should have received a copy of the GNU General Public License
  15. # along with this program; if not, write to the Free Software
  16. # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  17.  
  18. # This makefile requires GNU make.
  19.  
  20. VPATH = @srcdir@
  21. srcdir = @srcdir@
  22. objdir = .
  23.  
  24. target_alias = @target_alias@
  25. prefix = @prefix@
  26.  
  27. program_transform_name = @program_transform_name@
  28. exec_prefix = @exec_prefix@
  29. bindir = @bindir@
  30. libdir = @libdir@
  31. tooldir = $(exec_prefix)/$(target_alias)
  32. datadir = @datadir@
  33. infodir = @infodir@
  34. includedir = @includedir@
  35.  
  36. SHELL = /bin/sh
  37.  
  38. INSTALL = @INSTALL@
  39. INSTALL_DATA = @INSTALL_DATA@
  40. INSTALL_PROGRAM = @INSTALL_PROGRAM@
  41. mkinstalldirs = $(SHELL) $(srcdir)/../mkinstalldirs
  42.  
  43. CC = @CC@
  44. # FIXME: Which is it, CC or CC_FOR_TARGET?
  45. CC_FOR_TARGET = $(CC)
  46. AS_FOR_TARGET = $(AS)
  47. CFLAGS = @CFLAGS@
  48. CXXFLAGS = @CXXFLAGS@
  49.  
  50. # compiling with Cygwin?
  51. MNO_CYGWIN = @MNO_CYGWIN@
  52.  
  53. # Either crtdll (CRT_ID 1) or msvcrt (CRT_ID 2).
  54. RUNTIME = @RUNTIME@
  55. CRT_ID = @CRT_ID@
  56.  
  57. # Needed for threading dll.
  58. THREAD_DLL = @THREAD_DLL@
  59. THREAD_DLL_VERSION = 10
  60. THREAD_DLL_NAME = $(THREAD_DLL)$(THREAD_DLL_VERSION).dll
  61.  
  62. # Various libraries.
  63. LIBM_A=@LIBM_A@
  64.  
  65. INCLUDES = -I$(srcdir)/include -I$(srcdir)/../w32api/include \
  66.   -I$(srcdir)/../include \
  67.   -nostdinc -nostdinc++
  68. ALL_CFLAGS = $(CFLAGS) $(INCLUDES) $(MNO_CYGWIN)
  69. ALL_CXXFLAGS = $(CXXFLAGS) $(INCLUDES) $(MNO_CYGWIN)
  70.  
  71. AS = @AS@
  72. AR = @AR@
  73. LD = @LD@
  74. AR_FLAGS = rcv
  75. RANLIB = @RANLIB@
  76. DLLTOOL = @DLLTOOL@
  77. DLLTOOLFLAGS = 
  78. DLLTOOL_FOR_TARGET = $(DLLTOOL)
  79. DLLTOOL_FLAGS = --as $(AS_FOR_TARGET)
  80. DLLWRAP = @DLLWRAP@
  81. DLLWRAP_FOR_TARGET = $(DLLWRAP)
  82. DLLWRAP_FLAGS = --dlltool $(DLLTOOL) --as $(AS) --driver-name $(CC)
  83.  
  84. SUBDIRS := profile
  85.  
  86. FLAGS_TO_PASS:=\
  87.     AS="$(AS)" \
  88.     CC="$(CC)" \
  89.     CFLAGS="$(CFLAGS) $(CFLAGS_COMMON) $(CFLAGS_CONFIG)" \
  90.     CXXFLAGS="$(CXXFLAGS) $(CFLAGS_COMMON) $(CFLAGS_CONFIG)" \
  91.     EXE_LDFLAGS="$(EXE_LDFLAGS)" \
  92.     AR="$(AR)" \
  93.     RANLIB="$(RANLIB)" \
  94.     LD="$(LD)" \
  95.     DLLTOOL="$(DLLTOOL)"
  96.  
  97. CRT0S = crt$(CRT_ID).o dllcrt$(CRT_ID).o CRT_noglob.o crtmt.o crtst.o
  98. MINGW_OBJS = CRTglob.o CRTfmode.o CRTinit.o dirent.o dllmain.o gccmain.o \
  99.          main.o crtst.o mthr_stub.o
  100. MOLD_OBJS = ctype_old.o string_old.o
  101.  
  102. LIBS = libcrtdll.a libmsvcrt.a libmsvcrt20.a libmsvcrt40.a libmingw32.a \
  103.        libmoldname.a $(LIBM_A) libmingwthrd.a
  104.  
  105. DLLS = $(THREAD_DLL_NAME)
  106.  
  107. all : $(LIBS) $(DLLS) $(CRT0S)
  108.     @$(MAKE) subdirs DO=$@ $(FLAGS_TO_PASS)
  109.  
  110. _libm_dummy.o:
  111.     rm -f _libm_dummy.c
  112.     echo "static int __mingw_libm_dummy;" > _libm_dummy.c
  113.     $(CC) -c $(ALL_CFLAGS) _libm_dummy.c
  114.     rm -f _libm_dummy.c
  115.  
  116. libm.a: _libm_dummy.o
  117.     $(AR) rc $@ _libm_dummy.o
  118.     $(RANLIB) $@
  119.  
  120. libmingwthrd.a: crtmt.o mingwthrd.def $(THREAD_DLL_NAME)
  121.     $(DLLTOOL) $(DLLTOOL_FLAGS) --dllname $(THREAD_DLL_NAME) \
  122.       --def mingwthrd.def --output-lib $@
  123.     $(AR) $(ARFLAGS) $@ crtmt.o
  124.     $(RANLIB) $@
  125.  
  126. # Using dllwrap would be so much easier, but Cygnus top-level configure
  127. # Makefile.in etc don't pass the right variables yet.
  128. xx_$(THREAD_DLL_NAME) xx_mingwthrd.def: mthr.o mthr_init.o
  129.     $(DLLWRAP) $(DLLWRAP_FLAGS) -o $(THREAD_DLL_NAME) \
  130.         --output-def mingwthrd.def \
  131.         mthr.o mthr_init.o
  132.  
  133. DLL_OFILES        = mthr.o mthr_init.o
  134. DLL_CC_STUFF      = -B./ -mdll $(MNO_CYGWIN) -Wl,--image-base,0x6FBC0000 \
  135.                     $(DLL_OFILES)
  136. DLL_DLLTOOL_STUFF = --as=$(AS) --dllname $(THREAD_DLL_NAME) \
  137.                     --def mingwthrd.def \
  138.                     --base-file mingwthrd.base --output-exp mingwthrd.exp
  139.  
  140. $(THREAD_DLL_NAME) mingwthrd.def: $(DLL_OFILES) Makefile
  141.     $(DLLTOOL) --as $(AS) --output-def mingwthrd.def $(DLL_OFILES)
  142.     $(CC) -Wl,--base-file=mingwthrd.base $(DLL_CC_STUFF)
  143.     $(DLLTOOL) $(DLL_DLLTOOL_STUFF)
  144.     $(CC) -Wl,--base-file=mingwthrd.base mingwthrd.exp $(DLL_CC_STUFF)
  145.     $(DLLTOOL) $(DLL_DLLTOOL_STUFF) 
  146.     $(CC) mingwthrd.exp -o $(THREAD_DLL_NAME) $(DLL_CC_STUFF)
  147.  
  148. libmingw32.a: $(MINGW_OBJS)
  149.     $(AR) rc $@ $(MINGW_OBJS)
  150.     $(RANLIB) $@
  151.  
  152. $(srcdir)/moldname-$(RUNTIME).def: moldname.def.in
  153.     $(CC) -DRUNTIME=$(RUNTIME) \
  154.         -D__FILENAME__=moldname-${RUNTIME}.def \
  155.         -D__`echo $(RUNTIME) | tr '[a-z]' '[A-Z]'`__  -c -E -P \
  156.         -xc-header $? > $@
  157.  
  158. libmoldname.a: $(srcdir)/moldname-$(RUNTIME).def $(MOLD_OBJS)
  159.     $(DLLTOOL) --as $(AS) -k -U    \
  160.         --dllname $(RUNTIME).dll    \
  161.         --def $(srcdir)/moldname-$(RUNTIME).def    \
  162.         --output-lib $@
  163.     $(AR) rc $@ $(MOLD_OBJS)
  164.     $(RANLIB) $@
  165.  
  166. # The special rule is necessary.
  167. crt2.o dllcrt2.o:
  168.     $(CC) -c -D__MSVCRT__ $(ALL_CFLAGS) $< -o $@
  169.  
  170. clean:
  171.     -rm -f *.o *.a *~ core a.out mingwthrd.def mingwthrd.base mingwthrd.exp
  172.     -rm -f $(THREAD_DLL_NAME)
  173.     @$(MAKE) subdirs DO=$@ $(FLAGS_TO_PASS)
  174.  
  175. distclean:
  176.     @$(MAKE) subdirs DO=$@ $(FLAGS_TO_PASS)
  177.     -rm -f *.o *.a *~ core a.out mingwthrd.def mingwthrd.base mingwthrd.exp
  178.     -rm -f $(THREAD_DLL_NAME)
  179.     -rm -f config.cache config.status config.log 
  180.     -rm -f Makefile
  181.  
  182. info:
  183.  
  184. info-html:
  185.  
  186. install-info: info
  187.  
  188. install: all
  189.     $(mkinstalldirs) $(bindir)
  190.     for i in $(DLLS); do \
  191.         $(INSTALL_PROGRAM) $$i $(bindir)/$$i ; \
  192.     done
  193.     $(mkinstalldirs) $(tooldir)/lib 
  194.     for i in $(LIBS); do \
  195.         $(INSTALL_DATA) $$i $(tooldir)/lib/$$i ; \
  196.     done
  197.     for i in $(CRT0S); do \
  198.         $(INSTALL_DATA) $$i $(tooldir)/lib/$$i ; \
  199.     done
  200.     for sub in . sys ; do \
  201.     $(mkinstalldirs) $(tooldir)/include/$$sub ; \
  202.         for i in $(srcdir)/include/$$sub/*.h ; do \
  203.           $(INSTALL_DATA) $$i $(tooldir)/include/$$sub/`basename $$i` ; \
  204.         done ; \
  205.     done
  206.     @$(MAKE) subdirs DO=$@ $(FLAGS_TO_PASS)
  207.  
  208. subdirs: force
  209.     @for i in $(SUBDIRS); do \
  210.        echo "Making $(DO) in $${i}..." ; \
  211.        if [ -d ./$$i ] ; then \
  212.          if (rootme=`pwd`/ ; export rootme ; \
  213.            rootsrc=`cd $(srcdir); pwd`/ ; export rootsrc ; \
  214.            cd ./$$i; \
  215.            $(MAKE) $(FLAGS_TO_PASS) $(DO)) ; then true ; \
  216.          else exit 1 ; fi ; \
  217.        else true ; fi ; \
  218.     done
  219.  
  220. force:
  221.  
  222. #
  223. # Dependancies
  224. #
  225. libcrtdll.a: $(srcdir)/crtdll.def
  226. libmsvcrt.a: $(srcdir)/msvcrt.def
  227. libmsvcrt20.a: $(srcdir)/msvcrt20.def
  228. libmsvcrt40.a: $(srcdir)/msvcrt40.def
  229. CRT_noglob.o: $(srcdir)/CRT_noglob.c
  230. CRTfmode.o: $(srcdir)/CRTfmode.c
  231. CRTglob.o: $(srcdir)/CRTglob.c
  232. CRTinit.o: $(srcdir)/CRTinit.c
  233. crt1.o: $(srcdir)/crt1.c $(srcdir)/init.c
  234. crt2.o: $(srcdir)/crt1.c $(srcdir)/init.c
  235. crtmt.o: $(srcdir)/crtmt.c
  236. crtst.o: $(srcdir)/crtst.c
  237. ctype_old.o: $(srcdir)/ctype_old.c
  238. dllcrt1.o: $(srcdir)/dllcrt1.c 
  239. dllcrt2.o: $(srcdir)/dllcrt1.c 
  240. dirent.o: $(srcdir)/dirent.c
  241. dllmain.o: $(srcdir)/dllmain.c
  242. main.o: $(srcdir)/main.c
  243. oldnames.o: $(srcdir)/oldnames.c
  244. string_old.o: $(srcdir)/string_old.c
  245.  
  246. Makefile: Makefile.in config.status configure
  247.     $(SHELL) config.status
  248.  
  249. config.status: configure
  250.     $(SHELL) config.status --recheck
  251.  
  252. .SUFFIXES: .y $(SUFFIXES) .cc .def .a
  253.  
  254. lib%.a:%.def
  255.     $(DLLTOOL) --as=$(AS) -k --dllname $*.dll --output-lib lib$*.a --def $<
  256.  
  257. .c.o:
  258.     $(CC) -c $(ALL_CFLAGS) $< -o $@
  259.  
  260.