winlin

refine the makefile.

@@ -32,209 +32,26 @@ @@ -32,209 +32,26 @@
32 # may use your version of this file under either the MPL or the 32 # may use your version of this file under either the MPL or the
33 # GPL. 33 # GPL.
34 34
35 -# This is the full version of the libst library - modify carefully  
36 -VERSION = 1.9  
37 -  
38 -##########################  
39 -# Supported OSes:  
40 -#  
41 -#OS = AIX  
42 -#OS = CYGWIN  
43 -#OS = DARWIN  
44 -#OS = FREEBSD  
45 -#OS = HPUX  
46 -#OS = HPUX_64  
47 -#OS = IRIX  
48 -#OS = IRIX_64  
49 -#OS = LINUX  
50 -#OS = NETBSD  
51 -#OS = OPENBSD  
52 -#OS = OSF1  
53 -#OS = SOLARIS  
54 -#OS = SOLARIS_64  
55 -  
56 -# Please see the "Other possible defines" section below for  
57 -# possible compilation options.  
58 ########################## 35 ##########################
59 - 36 +# Target dir and cc:
60 CC = cc 37 CC = cc
61 -AR = ar  
62 -LD = ld  
63 -RANLIB = ranlib  
64 -LN = ln  
65 -  
66 -SHELL = /bin/sh  
67 -ECHO = /bin/echo  
68 -  
69 -BUILD = DBG  
70 -TARGETDIR = $(OS)_$(shell uname -r)_$(BUILD)  
71 -  
72 -DEFINES = -D$(OS)  
73 -CFLAGS =  
74 -SFLAGS =  
75 -ARFLAGS = -rv  
76 -LNFLAGS = -s  
77 -DSO_SUFFIX = so  
78 -  
79 -MAJOR = $(shell echo $(VERSION) | sed 's/^\([^\.]*\).*/\1/')  
80 -DESC = st.pc 38 +TARGETDIR = objs
81 39
82 ########################## 40 ##########################
83 -# Platform section.  
84 -# Possible targets:  
85 -  
86 -TARGETS = aix-debug aix-optimized \  
87 - cygwin-debug cygwin-optimized \  
88 - darwin-debug darwin-optimized \  
89 - freebsd-debug freebsd-optimized \  
90 - hpux-debug hpux-optimized \  
91 - hpux-64-debug hpux-64-optimized \  
92 - irix-n32-debug irix-n32-optimized \  
93 - irix-64-debug irix-64-optimized \  
94 - linux-debug linux-optimized \  
95 - netbsd-debug netbsd-optimized \  
96 - openbsd-debug openbsd-optimized \  
97 - osf1-debug osf1-optimized \  
98 - solaris-debug solaris-optimized \  
99 - solaris-64-debug solaris-64-optimized  
100 -  
101 -#  
102 -# Platform specifics  
103 -#  
104 -  
105 -ifeq ($(OS), AIX)  
106 -AIX_VERSION = $(shell uname -v).$(shell uname -r)  
107 -TARGETDIR = $(OS)_$(AIX_VERSION)_$(BUILD)  
108 -CC = xlC  
109 -STATIC_ONLY = yes  
110 -ifeq ($(BUILD), OPT)  
111 -OTHER_FLAGS = -w  
112 -endif  
113 -ifneq ($(filter-out 4.1 4.2, $(AIX_VERSION)),)  
114 -DEFINES += -DMD_HAVE_SOCKLEN_T  
115 -endif  
116 -endif  
117 -  
118 -ifeq ($(OS), CYGWIN)  
119 -TARGETDIR = $(OS)_$(BUILD)  
120 -CC = gcc  
121 -LD = gcc  
122 -DSO_SUFFIX = dll  
123 -SLIBRARY = $(TARGETDIR)/libst.dll.a  
124 -DLIBRARY = $(TARGETDIR)/libst.dll  
125 -DEF_FILE = $(TARGETDIR)/libst.def  
126 -LDFLAGS = libst.def -shared --enable-auto-image-base -Wl,--output-def,$(DEF_FILE),--out-implib,$(SLIBRARY)  
127 -OTHER_FLAGS = -Wall  
128 -endif  
129 -  
130 -ifeq ($(OS), DARWIN)  
131 -LD = cc  
132 -SFLAGS = -fPIC -fno-common  
133 -DSO_SUFFIX = dylib  
134 -RELEASE = $(shell uname -r | cut -d. -f1)  
135 -PPC = $(shell test $(RELEASE) -le 9 && echo yes)  
136 -INTEL = $(shell test $(RELEASE) -ge 9 && echo yes)  
137 -ifeq ($(PPC), yes)  
138 -CFLAGS += -arch ppc  
139 -LDFLAGS += -arch ppc  
140 -endif  
141 -ifeq ($(INTEL), yes)  
142 -CFLAGS += -arch i386 -arch x86_64  
143 -LDFLAGS += -arch i386 -arch x86_64  
144 -endif  
145 -LDFLAGS += -dynamiclib -install_name /sw/lib/libst.$(MAJOR).$(DSO_SUFFIX) -compatibility_version $(MAJOR) -current_version $(VERSION)  
146 -OTHER_FLAGS = -Wall  
147 -endif  
148 -  
149 -ifeq ($(OS), FREEBSD)  
150 -SFLAGS = -fPIC  
151 -LDFLAGS = -shared -soname=$(SONAME) -lc  
152 -OTHER_FLAGS = -Wall  
153 -ifeq ($(shell test -f /usr/include/sys/event.h && echo yes), yes)  
154 -DEFINES += -DMD_HAVE_KQUEUE  
155 -endif  
156 -endif  
157 -  
158 -ifeq (HPUX, $(findstring HPUX, $(OS)))  
159 -ifeq ($(OS), HPUX_64)  
160 -DEFINES = -DHPUX  
161 -CFLAGS = -Ae +DD64 +Z  
162 -else  
163 -CFLAGS = -Ae +DAportable +Z  
164 -endif  
165 -RANLIB = true  
166 -LDFLAGS = -b  
167 -DSO_SUFFIX = sl  
168 -endif 41 +# Supported OSes:
  42 +OS = LINUX
169 43
170 -ifeq (IRIX, $(findstring IRIX, $(OS)))  
171 -ifeq ($(OS), IRIX_64)  
172 -DEFINES = -DIRIX  
173 -ABIFLAG = -64  
174 -else  
175 -ABIFLAG = -n32  
176 -endif  
177 -RANLIB = true  
178 -CFLAGS = $(ABIFLAG) -mips3  
179 -LDFLAGS = $(ABIFLAG) -shared  
180 -OTHER_FLAGS = -fullwarn 44 +ifneq ($(shell test -f /usr/include/sys/epoll.h && echo yes), yes)
  45 +default:
  46 + @echo "epoll not found"
  47 + @exit 1
181 endif 48 endif
182 49
183 -ifeq ($(OS), LINUX)  
184 EXTRA_OBJS = $(TARGETDIR)/md.o 50 EXTRA_OBJS = $(TARGETDIR)/md.o
185 -SFLAGS = -fPIC  
186 -LDFLAGS = -shared -soname=$(SONAME) -lc  
187 -OTHER_FLAGS = -Wall  
188 -ifeq ($(shell test -f /usr/include/sys/epoll.h && echo yes), yes)  
189 -DEFINES += -DMD_HAVE_EPOLL  
190 -endif  
191 -endif  
192 -  
193 -ifeq ($(OS), NETBSD)  
194 -SFLAGS = -fPIC  
195 -LDFLAGS = -shared -soname=$(SONAME) -lc  
196 -OTHER_FLAGS = -Wall  
197 -endif  
198 51
199 -ifeq ($(OS), OPENBSD)  
200 -SFLAGS = -fPIC  
201 -LDFLAGS = -shared -soname=$(SONAME) -lc  
202 -OTHER_FLAGS = -Wall  
203 -ifeq ($(shell test -f /usr/include/sys/event.h && echo yes), yes)  
204 -DEFINES += -DMD_HAVE_KQUEUE  
205 -endif  
206 -endif  
207 -  
208 -ifeq ($(OS), OSF1)  
209 -RANLIB = true  
210 -LDFLAGS = -shared -all -expect_unresolved "*"  
211 -endif  
212 -  
213 -ifeq (SOLARIS, $(findstring SOLARIS, $(OS)))  
214 -TARGETDIR = $(OS)_$(shell uname -r | sed 's/^5/2/')_$(BUILD)  
215 -CC = gcc  
216 -LD = gcc  
217 -RANLIB = true  
218 -LDFLAGS = -G  
219 -OTHER_FLAGS = -Wall  
220 -ifeq ($(OS), SOLARIS_64)  
221 -DEFINES = -DSOLARIS  
222 -CFLAGS += -m64  
223 -LDFLAGS += -m64  
224 -endif  
225 -endif  
226 -  
227 -#  
228 -# End of platform section.  
229 -##########################  
230 -  
231 -  
232 -ifeq ($(BUILD), OPT)  
233 -OTHER_FLAGS += -O  
234 -else  
235 -OTHER_FLAGS += -g  
236 -DEFINES += -DDEBUG  
237 -endif 52 +CFLAGS =
  53 +OTHER_FLAGS += -Wall -g -O0
  54 +DEFINES = -D$(OS) -DDEBUG -DMD_HAVE_EPOLL
238 55
239 ########################## 56 ##########################
240 # Other possible defines: 57 # Other possible defines:
@@ -285,81 +102,23 @@ endif @@ -285,81 +102,23 @@ endif
285 102
286 CFLAGS += $(DEFINES) $(OTHER_FLAGS) $(EXTRA_CFLAGS) 103 CFLAGS += $(DEFINES) $(OTHER_FLAGS) $(EXTRA_CFLAGS)
287 104
288 -OBJS = $(TARGETDIR)/sched.o \  
289 - $(TARGETDIR)/stk.o \  
290 - $(TARGETDIR)/sync.o \  
291 - $(TARGETDIR)/key.o \  
292 - $(TARGETDIR)/io.o \  
293 - $(TARGETDIR)/event.o 105 +OBJS = $(TARGETDIR)/sched.o \
  106 + $(TARGETDIR)/stk.o \
  107 + $(TARGETDIR)/sync.o \
  108 + $(TARGETDIR)/key.o \
  109 + $(TARGETDIR)/io.o \
  110 + $(TARGETDIR)/event.o \
  111 + $(TARGETDIR)/srs.o
294 OBJS += $(EXTRA_OBJS) 112 OBJS += $(EXTRA_OBJS)
295 -HEADER = $(TARGETDIR)/st.h  
296 -SLIBRARY = $(TARGETDIR)/libst.a  
297 -DLIBRARY = $(TARGETDIR)/libst.$(DSO_SUFFIX).$(VERSION)  
298 -EXAMPLES = examples  
299 -  
300 -LINKNAME = libst.$(DSO_SUFFIX)  
301 -SONAME = libst.$(DSO_SUFFIX).$(MAJOR)  
302 -FULLNAME = libst.$(DSO_SUFFIX).$(VERSION)  
303 -  
304 -ifeq ($(OS), CYGWIN)  
305 -SONAME = cygst.$(DSO_SUFFIX)  
306 -SLIBRARY = $(TARGETDIR)/libst.dll.a  
307 -DLIBRARY = $(TARGETDIR)/$(SONAME)  
308 -LINKNAME =  
309 -# examples directory does not compile under cygwin  
310 -EXAMPLES =  
311 -endif  
312 -  
313 -ifeq ($(OS), DARWIN)  
314 -LINKNAME = libst.$(DSO_SUFFIX)  
315 -SONAME = libst.$(MAJOR).$(DSO_SUFFIX)  
316 -FULLNAME = libst.$(VERSION).$(DSO_SUFFIX)  
317 -endif  
318 -  
319 -ifeq ($(STATIC_ONLY), yes)  
320 -LIBRARIES = $(SLIBRARY)  
321 -else  
322 -LIBRARIES = $(SLIBRARY) $(DLIBRARY)  
323 -endif  
324 -  
325 -ifeq ($(OS),)  
326 -ST_ALL = unknown  
327 -else  
328 -ST_ALL = $(TARGETDIR) $(LIBRARIES) $(HEADER) $(EXAMPLES) $(DESC)  
329 -endif  
330 -  
331 -all: $(ST_ALL) 113 +SRS = $(TARGETDIR)/srs
332 114
333 -unknown:  
334 - @echo  
335 - @echo "Please specify one of the following targets:"  
336 - @echo  
337 - @for target in $(TARGETS); do echo $$target; done  
338 - @echo  
339 -  
340 -st.pc: st.pc.in  
341 - sed "s/@VERSION@/${VERSION}/g" < $< > $@ 115 +all: $(TARGETDIR) $(SRS)
342 116
343 $(TARGETDIR): 117 $(TARGETDIR):
344 if [ ! -d $(TARGETDIR) ]; then mkdir $(TARGETDIR); fi 118 if [ ! -d $(TARGETDIR) ]; then mkdir $(TARGETDIR); fi
345 119
346 -$(SLIBRARY): $(OBJS)  
347 - $(AR) $(ARFLAGS) $@ $(OBJS)  
348 - $(RANLIB) $@  
349 - rm -f obj; $(LN) $(LNFLAGS) $(TARGETDIR) obj  
350 -  
351 -$(DLIBRARY): $(OBJS:%.o=%-pic.o)  
352 - $(LD) $(LDFLAGS) $^ -o $@  
353 - if test "$(LINKNAME)"; then \  
354 - cd $(TARGETDIR); \  
355 - rm -f $(SONAME) $(LINKNAME); \  
356 - $(LN) $(LNFLAGS) $(FULLNAME) $(SONAME); \  
357 - $(LN) $(LNFLAGS) $(FULLNAME) $(LINKNAME); \  
358 - fi  
359 -  
360 -$(HEADER): public.h  
361 - rm -f $@  
362 - cp public.h $@ 120 +$(SRS): $(OBJS)
  121 + $(CC) $(CFLAGS) -o $@ $(OBJS)
363 122
364 $(TARGETDIR)/md.o: md.S 123 $(TARGETDIR)/md.o: md.S
365 $(CC) $(CFLAGS) -c $< -o $@ 124 $(CC) $(CFLAGS) -c $< -o $@
@@ -367,103 +126,5 @@ $(TARGETDIR)/md.o: md.S @@ -367,103 +126,5 @@ $(TARGETDIR)/md.o: md.S
367 $(TARGETDIR)/%.o: %.c common.h md.h 126 $(TARGETDIR)/%.o: %.c common.h md.h
368 $(CC) $(CFLAGS) -c $< -o $@ 127 $(CC) $(CFLAGS) -c $< -o $@
369 128
370 -examples::  
371 - @echo Making $@  
372 - @cd $@; $(MAKE) CC="$(CC)" CFLAGS="$(CFLAGS)" OS="$(OS)" TARGETDIR="$(TARGETDIR)"  
373 -  
374 clean: 129 clean:
375 - rm -rf *_OPT *_DBG obj st.pc  
376 -  
377 -##########################  
378 -# Pattern rules:  
379 -  
380 -ifneq ($(SFLAGS),)  
381 -# Compile with shared library options if it's a C file  
382 -$(TARGETDIR)/%-pic.o: %.c common.h md.h  
383 - $(CC) $(CFLAGS) $(SFLAGS) -c $< -o $@  
384 -endif  
385 -  
386 -# Compile assembly as normal or C as normal if no SFLAGS  
387 -%-pic.o: %.o  
388 - rm -f $@; $(LN) $(LNFLAGS) $(<F) $@  
389 -  
390 -##########################  
391 -# Target rules:  
392 -  
393 -default-debug:  
394 - . ./osguess.sh; $(MAKE) OS="$$OS" BUILD="DBG"  
395 -default default-optimized:  
396 - . ./osguess.sh; $(MAKE) OS="$$OS" BUILD="OPT"  
397 -  
398 -aix-debug:  
399 - $(MAKE) OS="AIX" BUILD="DBG"  
400 -aix-optimized:  
401 - $(MAKE) OS="AIX" BUILD="OPT"  
402 -  
403 -cygwin-debug:  
404 - $(MAKE) OS="CYGWIN" BUILD="DBG"  
405 -cygwin-optimized:  
406 - $(MAKE) OS="CYGWIN" BUILD="OPT"  
407 -  
408 -darwin-debug:  
409 - $(MAKE) OS="DARWIN" BUILD="DBG"  
410 -darwin-optimized:  
411 - $(MAKE) OS="DARWIN" BUILD="OPT"  
412 -  
413 -freebsd-debug:  
414 - $(MAKE) OS="FREEBSD" BUILD="DBG"  
415 -freebsd-optimized:  
416 - $(MAKE) OS="FREEBSD" BUILD="OPT"  
417 -  
418 -hpux-debug:  
419 - $(MAKE) OS="HPUX" BUILD="DBG"  
420 -hpux-optimized:  
421 - $(MAKE) OS="HPUX" BUILD="OPT"  
422 -hpux-64-debug:  
423 - $(MAKE) OS="HPUX_64" BUILD="DBG"  
424 -hpux-64-optimized:  
425 - $(MAKE) OS="HPUX_64" BUILD="OPT"  
426 -  
427 -irix-n32-debug:  
428 - $(MAKE) OS="IRIX" BUILD="DBG"  
429 -irix-n32-optimized:  
430 - $(MAKE) OS="IRIX" BUILD="OPT"  
431 -irix-64-debug:  
432 - $(MAKE) OS="IRIX_64" BUILD="DBG"  
433 -irix-64-optimized:  
434 - $(MAKE) OS="IRIX_64" BUILD="OPT"  
435 -  
436 -linux-debug:  
437 - $(MAKE) OS="LINUX" BUILD="DBG"  
438 -linux-optimized:  
439 - $(MAKE) OS="LINUX" BUILD="OPT"  
440 -# compatibility  
441 -linux-ia64-debug: linux-debug  
442 -linux-ia64-optimized: linux-optimized  
443 -  
444 -netbsd-debug:  
445 - $(MAKE) OS="NETBSD" BUILD="DBG"  
446 -netbsd-optimized:  
447 - $(MAKE) OS="NETBSD" BUILD="OPT"  
448 -  
449 -openbsd-debug:  
450 - $(MAKE) OS="OPENBSD" BUILD="DBG"  
451 -openbsd-optimized:  
452 - $(MAKE) OS="OPENBSD" BUILD="OPT"  
453 -  
454 -osf1-debug:  
455 - $(MAKE) OS="OSF1" BUILD="DBG"  
456 -osf1-optimized:  
457 - $(MAKE) OS="OSF1" BUILD="OPT"  
458 -  
459 -solaris-debug:  
460 - $(MAKE) OS="SOLARIS" BUILD="DBG"  
461 -solaris-optimized:  
462 - $(MAKE) OS="SOLARIS" BUILD="OPT"  
463 -solaris-64-debug:  
464 - $(MAKE) OS="SOLARIS_64" BUILD="DBG"  
465 -solaris-64-optimized:  
466 - $(MAKE) OS="SOLARIS_64" BUILD="OPT"  
467 -  
468 -##########################  
469 - 130 + rm -rf $(TARGETDIR)
  1 +#include "public.h"
  2 +
  3 +int main(int argc, char** argv)
  4 +{
  5 + return 0;
  6 +}
  7 +
1 file 1 file
2 main readonly separator, 2 main readonly separator,
  3 + ..\srs.c,
  4 + st readonly separator,
3 ..\common.h, 5 ..\common.h,
4 ..\event.c, 6 ..\event.c,
5 ..\io.c, 7 ..\io.c,