Release 960506
[wine.git] / Make.rules.in
blobbb56d51a191097e08761eb5ec0d995cc715e176c
1 # Global rules shared by all makefiles
2 # The makefile must define at least TOPSRC and MODULE
4 # First some useful definitions
6 SHELL     = /bin/sh
7 CC        = @CC@
8 CPP       = @CPP@
9 CFLAGS    = @CFLAGS@
10 DEFS      = @DEFS@
11 X_CFLAGS  = @X_CFLAGS@
12 X_LIBS    = @X_LIBS@
13 XPM_LIB   = -lXpm
14 XLIB      = @X_PRE_LIBS@ -lXext -lX11 @X_EXTRA_LIBS@
15 LDLIBS    = @LDLIBS@
16 YACC      = @YACC@
17 LEX       = @LEX@
18 LEXLIB    = @LEXLIB@
19 DIVINCL   = -I$(TOPSRC)/include
20 ALLCFLAGS = $(CFLAGS) $(DEFS) $(DIVINCL) $(X_CFLAGS) $(EXTRA_DEFS)
21 LDCOMBINE = ld -r
22 RM        = rm -f
23 BUILD     = $(TOPSRC)/tools/build
24 WINERC    = $(TOPSRC)/rc/winerc
25 WINELIB   = $(TOPSRC)/libwine.a
26 SUBMAKE   = $(MAKE) 'CC=$(CC)' 'CFLAGS=$(CFLAGS)' 'DEFS=$(DEFS)'
27 @SET_MAKE@
29 OBJS = $(C_SRCS:.c=.o) $(ASM_SRCS:.S=.o) $(EXTRA_OBJS)
32 # Implicit rules
34 .SUFFIXES: .rc
36 .c.o:
37         $(CC) -c $(ALLCFLAGS) -o $*.o $<
39 .S.o:
40         $(CC) -c -o $*.o $<  
42 .rc.c:
43         echo "#include \"windows.h\"" >winerctmp.c
44         echo WINDOWS_H_ENDS_HERE >>winerctmp.c
45         cat $< >>winerctmp.c
46         $(CPP) $(DEFS) $(DIVINCL) -DRC_INVOKED -P winerctmp.c | sed -e '1,/^WINDOWS_H_ENDS_HERE/d' | $(WINERC) -c -o $* -p $*
47         $(RM) winerctmp.c
49 .rc.h:
50         echo "#include \"windows.h\"" >winerctmp.c
51         echo WINDOWS_H_ENDS_HERE >>winerctmp.c
52         cat $< >>winerctmp.c
53         $(CPP) $(DEFS) $(DIVINCL) -P winerctmp.c | sed -e '1,/^WINDOWS_H_ENDS_HERE/d' | $(WINERC) -c -o $* -p $*
54         $(RM) winerctmp.c
57 # Rule to rebuild resource compiler
59 $(WINERC) check_winerc:
60         cd $(TOPSRC)/rc; $(SUBMAKE) winerc
63 # Rule for main module
65 $(MODULE).o: $(OBJS)
66         $(LDCOMBINE) $(OBJS) -o $(MODULE).o
69 # Misc. rules
71 depend:: $(C_SRCS)
72         sed '/\#\#\# Dependencies/q' < Makefile > tmp_make
73         $(CC) $(ALLCFLAGS) -MM $(C_SRCS) >> tmp_make
74         mv tmp_make Makefile
76 clean::
77         $(RM) *.o \#*\# *~ *.bak *.orig *.rej *.flc tmp_make winerctmp.c
79 dummy:
81 # End of global rules