正在显示
3 个修改的文件
包含
32 行增加
和
362 行删除
trunk/research/st/Makefile
100644 → 100755
| @@ -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) |
trunk/research/st/srs.c
0 → 100644
-
请 注册 或 登录 后发表评论