comparison Makefile.in @ 601:fe6490a13ed2

Simplify and link dwtest with locally built shared libraries
author mhessling@81767d24-ef19-dc11-ae90-00e081727c95
date Mon, 25 Sep 2006 23:14:39 +0000
parents f6de197ecbe9
children f41b7e3a54f6
comparison
equal deleted inserted replaced
600:d0e1db21e859 601:fe6490a13ed2
1 srcdir=@srcdir@ 1 srcdir=@srcdir@
2 CC = @CC@ 2 CC = @CC@
3 MLFLAGS = -L.
3 CCFLAGS = @CFLAGS@ -g -O2 -fPIC -Wall -D@DW_DEFINE@ -DBUILD_DLL -DDW_RESOURCES 4 CCFLAGS = @CFLAGS@ -g -O2 -fPIC -Wall -D@DW_DEFINE@ -DBUILD_DLL -DDW_RESOURCES
4 LFLAGS = @LIBS@ 5 LFLAGS = @LIBS@
5 INSTALL = @INSTALL@ 6 INSTALL = @INSTALL@
6 DW_SRC = @DW_SRC@ 7 DW_SRC = @DW_SRC@
7 INCPATH = -I.. -I. -I$(srcdir) 8 INCPATH = -I.. -I. -I$(srcdir)
8 DESTDIR = ./lib/
9 MLFLAGS = -L$(DESTDIR)
10 TARGET = dw 9 TARGET = dw
11 SRCS = $(srcdir)/$(DW_SRC)/dw.c 10 SRCS = $(srcdir)/$(DW_SRC)/dw.c
12 OBJECTS = dw.o 11 OBJECTS = dw.o
13 SRCS2 = $(srcdir)compat.c 12 SRCS2 = $(srcdir)compat.c
14 OBJECTS2= compat.o 13 OBJECTS2= compat.o
15 TARGET2 = dwcompat 14 TARGET2 = dwcompat
16 VER_MAJ = 1 15 VER_MAJ = 0
17 VER_MIN = 0 16 VER_MIN = 9
18 SOSUFFIX= @SOSUFFIX@ 17 SOSUFFIX= @SOSUFFIX@
19 PREFIX = @prefix@ 18 PREFIX = $(DESTDIR)@prefix@
20 SRCDIR=dwindows-$(VER_MAJ).$(VER_MIN) 19 SRCDIR=dwindows-$(VER_MAJ).$(VER_MIN)
21 20
22 #.SUFFIXES: .c .h 21 #.SUFFIXES: .c .h
23 22
24 #.c.o: 23 #.c.o:
25 # $(CC) -c $(CCFLAGS) $(INCPATH) -o $@ $< 24 # $(CC) -c $(CCFLAGS) $(INCPATH) -o $@ $<
26 25
27 26
28 # Link flags shared objects 27 # Link flags shared objects
29 SYSCONF_LFLAGS_SHOBJ = @SHAREDFLAG@ 28 SYSCONF_LFLAGS_SHOBJ = @SHAREDFLAG@
30 29
31 # Linking shared libraries 30 # Linking shared libraries
32 # - Build the $(TARGET) library, eg. lib$(TARGET).so.0.0 31 # - Build the $(TARGET) library, eg. lib$(TARGET).so.0.0
33 # - Place target in $(DESTDIR) - which has a trailing /
34 # - Usually needs to incorporate $(VER_MAJ) and $(VER_MIN) 32 # - Usually needs to incorporate $(VER_MAJ) and $(VER_MIN)
35 # 33 #
36 SYSCONF_LINK_SHLIB = gcc 34 SYSCONF_LINK_SHLIB = gcc
37 SYSCONF_LINK_TARGET_SHARED = lib$(TARGET).$(SOSUFFIX).$(VER_MAJ).$(VER_MIN) 35 SYSCONF_LINK_TARGET_SHARED = lib$(TARGET).$(SOSUFFIX).$(VER_MAJ).$(VER_MIN)
38 SYSCONF_LINK_LIB_SHARED = $(SYSCONF_LINK_SHLIB) $(SYSCONF_LFLAGS_SHOBJ) \ 36 SYSCONF_LINK_LIB_SHARED = $(SYSCONF_LINK_SHLIB) $(SYSCONF_LFLAGS_SHOBJ) \
39 -o $(SYSCONF_LINK_TARGET_SHARED) \ 37 -o $(SYSCONF_LINK_TARGET_SHARED) \
40 $(OBJECTS) $(LFLAGS); \ 38 $(OBJECTS) $(LFLAGS); \
41 mv $(SYSCONF_LINK_TARGET_SHARED) $(DESTDIR); \
42 cd $(DESTDIR); \
43 rm -f lib$(TARGET).$(SOSUFFIX) lib$(TARGET).$(SOSUFFIX).$(VER_MAJ); \ 39 rm -f lib$(TARGET).$(SOSUFFIX) lib$(TARGET).$(SOSUFFIX).$(VER_MAJ); \
44 ln -s $(SYSCONF_LINK_TARGET_SHARED) lib$(TARGET).$(SOSUFFIX); \ 40 ln -s $(SYSCONF_LINK_TARGET_SHARED) lib$(TARGET).$(SOSUFFIX); \
45 ln -s $(SYSCONF_LINK_TARGET_SHARED) lib$(TARGET).$(SOSUFFIX).$(VER_MAJ) 41 ln -s $(SYSCONF_LINK_TARGET_SHARED) lib$(TARGET).$(SOSUFFIX).$(VER_MAJ)
46 42
47 SYSCONF_LINK_TARGET_SHARED2 = lib$(TARGET2).$(SOSUFFIX).$(VER_MAJ).$(VER_MIN) 43 SYSCONF_LINK_TARGET_SHARED2 = lib$(TARGET2).$(SOSUFFIX).$(VER_MAJ).$(VER_MIN)
48 SYSCONF_LINK_LIB_SHARED2 = $(SYSCONF_LINK_SHLIB) $(SYSCONF_LFLAGS_SHOBJ) \ 44 SYSCONF_LINK_LIB_SHARED2 = $(SYSCONF_LINK_SHLIB) $(SYSCONF_LFLAGS_SHOBJ) \
49 -o $(SYSCONF_LINK_TARGET_SHARED2) \ 45 -o $(SYSCONF_LINK_TARGET_SHARED2) \
50 $(OBJECTS2) $(LFLAGS); \ 46 $(OBJECTS2) $(LFLAGS); \
51 mv $(SYSCONF_LINK_TARGET_SHARED2) $(DESTDIR); \
52 cd $(DESTDIR); \
53 rm -f lib$(TARGET2).$(SOSUFFIX) lib$(TARGET2).$(SOSUFFIX).$(VER_MAJ); \ 47 rm -f lib$(TARGET2).$(SOSUFFIX) lib$(TARGET2).$(SOSUFFIX).$(VER_MAJ); \
54 ln -s $(SYSCONF_LINK_TARGET_SHARED2) lib$(TARGET2).$(SOSUFFIX); \ 48 ln -s $(SYSCONF_LINK_TARGET_SHARED2) lib$(TARGET2).$(SOSUFFIX); \
55 ln -s $(SYSCONF_LINK_TARGET_SHARED2) lib$(TARGET2).$(SOSUFFIX).$(VER_MAJ) 49 ln -s $(SYSCONF_LINK_TARGET_SHARED2) lib$(TARGET2).$(SOSUFFIX).$(VER_MAJ)
56 50
57 51
58 # Linking static libraries 52 # Linking static libraries
59 # - Build the $(TARGET) library, eg. lib$(TARGET).a 53 # - Build the $(TARGET) library, eg. lib$(TARGET).a
60 # - Place target in $(DESTDIR) - which has a trailing /
61 # 54 #
62 SYSCONF_AR = ar cqs 55 SYSCONF_AR = ar cqs
63 SYSCONF_LINK_TARGET_STATIC = lib$(TARGET).a 56 SYSCONF_LINK_TARGET_STATIC = lib$(TARGET).a
64 SYSCONF_LINK_LIB_STATIC = rm -f $(DESTDIR)$(SYSCONF_LINK_TARGET_STATIC) ; \ 57 SYSCONF_LINK_LIB_STATIC = rm -f $(SYSCONF_LINK_TARGET_STATIC) ; \
65 $(SYSCONF_AR) $(DESTDIR)$(SYSCONF_LINK_TARGET_STATIC) $(OBJECTS) 58 $(SYSCONF_AR) $(SYSCONF_LINK_TARGET_STATIC) $(OBJECTS)
66 59
67 60
68 61
69 ####### Build rules 62 ####### Build rules
70 63
75 SYSCONF_LINK_LIB2 = $(SYSCONF_LINK_LIB_SHARED2) 68 SYSCONF_LINK_LIB2 = $(SYSCONF_LINK_LIB_SHARED2)
76 69
77 all: $(SYSCONF_LINK_TARGET) $(SYSCONF_LINK_TARGET2) dwtest 70 all: $(SYSCONF_LINK_TARGET) $(SYSCONF_LINK_TARGET2) dwtest
78 71
79 install: 72 install:
73 $(INSTALL) -d $(PREFIX)/include; \
74 $(INSTALL) -d $(PREFIX)/bin; \
75 $(INSTALL) -d $(PREFIX)/lib; \
80 $(INSTALL) $(srcdir)/dw.h $(PREFIX)/include; \ 76 $(INSTALL) $(srcdir)/dw.h $(PREFIX)/include; \
81 $(INSTALL) $(srcdir)/compat.h $(PREFIX)/include; \
82 $(INSTALL) dw-config $(PREFIX)/bin; \ 77 $(INSTALL) dw-config $(PREFIX)/bin; \
83 cd $(DESTDIR); \ 78 $(INSTALL) dwtest $(PREFIX)/bin; \
84 $(INSTALL) $(SYSCONF_LINK_TARGET) $(PREFIX)/lib; \ 79 $(INSTALL) $(SYSCONF_LINK_TARGET) $(PREFIX)/lib; \
85 $(INSTALL) $(SYSCONF_LINK_TARGET2) $(PREFIX)/lib; \ 80 $(INSTALL) $(SYSCONF_LINK_TARGET2) $(PREFIX)/lib; \
86 cd $(PREFIX)/lib; \ 81 cd $(PREFIX)/lib; \
87 rm -f lib$(TARGET).so lib$(TARGET).so.$(VER_MAJ); \ 82 rm -f lib$(TARGET).so lib$(TARGET).so.$(VER_MAJ); \
88 ln -s $(SYSCONF_LINK_TARGET_SHARED) lib$(TARGET).$(SOSUFFIX); \ 83 ln -s $(SYSCONF_LINK_TARGET_SHARED) lib$(TARGET).$(SOSUFFIX); \
89 ln -s $(SYSCONF_LINK_TARGET_SHARED) lib$(TARGET).$(SOSUFFIX).$(VER_MAJ); \ 84 ln -s $(SYSCONF_LINK_TARGET_SHARED) lib$(TARGET).$(SOSUFFIX).$(VER_MAJ); \
90 rm -f lib$(TARGET2).$(SOSUFFIX) lib$(TARGET2).$(SOSUFFIX).$(VER_MAJ); \ 85 rm -f lib$(TARGET2).$(SOSUFFIX) lib$(TARGET2).$(SOSUFFIX).$(VER_MAJ); \
91 ln -s $(SYSCONF_LINK_TARGET_SHARED2) lib$(TARGET2).$(SOSUFFIX); \ 86 ln -s $(SYSCONF_LINK_TARGET_SHARED2) lib$(TARGET2).$(SOSUFFIX); \
92 ln -s $(SYSCONF_LINK_TARGET_SHARED2) lib$(TARGET2).$(SOSUFFIX).$(VER_MAJ) 87 ln -s $(SYSCONF_LINK_TARGET_SHARED2) lib$(TARGET2).$(SOSUFFIX).$(VER_MAJ)
93 88
94 clean: 89 clean:
95 rm -f *.so 90 rm -f *.so
96 rm -f *.o 91 rm -f *.o
97 rm -f *~ 92 rm -f *~
98 rm -f *.a 93 rm -f *.a
99 rm -f $(DW_SRC)/*.o 94 rm -f $(DW_SRC)/*.o
100 95
101 $(DESTDIR): 96 $(SYSCONF_LINK_TARGET2): $(OBJECTS2)
102 mkdir $(DESTDIR)
103
104 $(SYSCONF_LINK_TARGET2): $(OBJECTS2) $(DESTDIR)
105 $(SYSCONF_LINK_LIB2) 97 $(SYSCONF_LINK_LIB2)
106 98
107 $(SYSCONF_LINK_TARGET): $(OBJECTS) $(DESTDIR) 99 $(SYSCONF_LINK_TARGET): $(OBJECTS)
108 $(SYSCONF_LINK_LIB) 100 $(SYSCONF_LINK_LIB)
109 101
110 dw.o: $(srcdir)/$(DW_SRC)/dw.c 102 dw.o: $(srcdir)/$(DW_SRC)/dw.c
111 $(CC) -c $(INCPATH) $(CCFLAGS) -o $@ $(srcdir)/$(DW_SRC)/dw.c 103 $(CC) -c $(INCPATH) $(CCFLAGS) -o $@ $(srcdir)/$(DW_SRC)/dw.c
112 104
116 ci.o: $(srcdir)/ci.c 108 ci.o: $(srcdir)/ci.c
117 $(CC) -c $(INCPATH) $(CCFLAGS) -o $@ $(srcdir)/ci.c 109 $(CC) -c $(INCPATH) $(CCFLAGS) -o $@ $(srcdir)/ci.c
118 110
119 dwtest.o: $(srcdir)/dwtest.c 111 dwtest.o: $(srcdir)/dwtest.c
120 $(CC) -c $(INCPATH) $(CCFLAGS) -o $@ $(srcdir)/dwtest.c 112 $(CC) -c $(INCPATH) $(CCFLAGS) -o $@ $(srcdir)/dwtest.c
121 113
122 ci: ci.o 114 ci: ci.o
123 $(CC) -o ci ci.o -L$(PREFIX)/lib -ldw -ldwcompat $(LFLAGS) 115 $(CC) -o ci ci.o -L$(PREFIX)/lib -ldw -ldwcompat $(LFLAGS)
124 116
125 dwtest: dwtest.o 117 dwtest: dwtest.o
126 $(CC) -o dwtest dwtest.o -L$(PREFIX)/lib -ldw -ldwcompat $(LFLAGS) 118 $(CC) -o dwtest dwtest.o $(MLFLAGS) -ldw -ldwcompat $(LFLAGS)
127 -chmod +x mac/finishup.sh 119 -chmod +x mac/finishup.sh
128 -mac/finishup.sh 120 -mac/finishup.sh
129 121
130 zip: 122 zip:
131 zip dwindows$(VER_MAJ)$(VER_MIN).zip $(srcdir)/license.txt $(srcdir)/makefile.* $(srcdir)/readme $(srcdir)/*.c $(srcdir)/dw.h $(srcdir)/compat.h \ 123 zip dwindows$(VER_MAJ)$(VER_MIN).zip $(srcdir)/license.txt $(srcdir)/makefile.* $(srcdir)/readme $(srcdir)/*.c $(srcdir)/dw.h $(srcdir)/compat.h \