mirror of
https://github.com/ossrs/srs.git
synced 2025-02-12 19:31:53 +00:00
refine the makefile.
This commit is contained in:
parent
4fe5a9bdb3
commit
d9b12b151c
3 changed files with 33 additions and 363 deletions
387
trunk/research/st/Makefile
Normal file → Executable file
387
trunk/research/st/Makefile
Normal file → Executable file
|
@ -32,209 +32,26 @@
|
|||
# may use your version of this file under either the MPL or the
|
||||
# GPL.
|
||||
|
||||
# This is the full version of the libst library - modify carefully
|
||||
VERSION = 1.9
|
||||
##########################
|
||||
# Target dir and cc:
|
||||
CC = cc
|
||||
TARGETDIR = objs
|
||||
|
||||
##########################
|
||||
# Supported OSes:
|
||||
#
|
||||
#OS = AIX
|
||||
#OS = CYGWIN
|
||||
#OS = DARWIN
|
||||
#OS = FREEBSD
|
||||
#OS = HPUX
|
||||
#OS = HPUX_64
|
||||
#OS = IRIX
|
||||
#OS = IRIX_64
|
||||
#OS = LINUX
|
||||
#OS = NETBSD
|
||||
#OS = OPENBSD
|
||||
#OS = OSF1
|
||||
#OS = SOLARIS
|
||||
#OS = SOLARIS_64
|
||||
OS = LINUX
|
||||
|
||||
# Please see the "Other possible defines" section below for
|
||||
# possible compilation options.
|
||||
##########################
|
||||
|
||||
CC = cc
|
||||
AR = ar
|
||||
LD = ld
|
||||
RANLIB = ranlib
|
||||
LN = ln
|
||||
|
||||
SHELL = /bin/sh
|
||||
ECHO = /bin/echo
|
||||
|
||||
BUILD = DBG
|
||||
TARGETDIR = $(OS)_$(shell uname -r)_$(BUILD)
|
||||
|
||||
DEFINES = -D$(OS)
|
||||
CFLAGS =
|
||||
SFLAGS =
|
||||
ARFLAGS = -rv
|
||||
LNFLAGS = -s
|
||||
DSO_SUFFIX = so
|
||||
|
||||
MAJOR = $(shell echo $(VERSION) | sed 's/^\([^\.]*\).*/\1/')
|
||||
DESC = st.pc
|
||||
|
||||
##########################
|
||||
# Platform section.
|
||||
# Possible targets:
|
||||
|
||||
TARGETS = aix-debug aix-optimized \
|
||||
cygwin-debug cygwin-optimized \
|
||||
darwin-debug darwin-optimized \
|
||||
freebsd-debug freebsd-optimized \
|
||||
hpux-debug hpux-optimized \
|
||||
hpux-64-debug hpux-64-optimized \
|
||||
irix-n32-debug irix-n32-optimized \
|
||||
irix-64-debug irix-64-optimized \
|
||||
linux-debug linux-optimized \
|
||||
netbsd-debug netbsd-optimized \
|
||||
openbsd-debug openbsd-optimized \
|
||||
osf1-debug osf1-optimized \
|
||||
solaris-debug solaris-optimized \
|
||||
solaris-64-debug solaris-64-optimized
|
||||
|
||||
#
|
||||
# Platform specifics
|
||||
#
|
||||
|
||||
ifeq ($(OS), AIX)
|
||||
AIX_VERSION = $(shell uname -v).$(shell uname -r)
|
||||
TARGETDIR = $(OS)_$(AIX_VERSION)_$(BUILD)
|
||||
CC = xlC
|
||||
STATIC_ONLY = yes
|
||||
ifeq ($(BUILD), OPT)
|
||||
OTHER_FLAGS = -w
|
||||
endif
|
||||
ifneq ($(filter-out 4.1 4.2, $(AIX_VERSION)),)
|
||||
DEFINES += -DMD_HAVE_SOCKLEN_T
|
||||
endif
|
||||
ifneq ($(shell test -f /usr/include/sys/epoll.h && echo yes), yes)
|
||||
default:
|
||||
@echo "epoll not found"
|
||||
@exit 1
|
||||
endif
|
||||
|
||||
ifeq ($(OS), CYGWIN)
|
||||
TARGETDIR = $(OS)_$(BUILD)
|
||||
CC = gcc
|
||||
LD = gcc
|
||||
DSO_SUFFIX = dll
|
||||
SLIBRARY = $(TARGETDIR)/libst.dll.a
|
||||
DLIBRARY = $(TARGETDIR)/libst.dll
|
||||
DEF_FILE = $(TARGETDIR)/libst.def
|
||||
LDFLAGS = libst.def -shared --enable-auto-image-base -Wl,--output-def,$(DEF_FILE),--out-implib,$(SLIBRARY)
|
||||
OTHER_FLAGS = -Wall
|
||||
endif
|
||||
|
||||
ifeq ($(OS), DARWIN)
|
||||
LD = cc
|
||||
SFLAGS = -fPIC -fno-common
|
||||
DSO_SUFFIX = dylib
|
||||
RELEASE = $(shell uname -r | cut -d. -f1)
|
||||
PPC = $(shell test $(RELEASE) -le 9 && echo yes)
|
||||
INTEL = $(shell test $(RELEASE) -ge 9 && echo yes)
|
||||
ifeq ($(PPC), yes)
|
||||
CFLAGS += -arch ppc
|
||||
LDFLAGS += -arch ppc
|
||||
endif
|
||||
ifeq ($(INTEL), yes)
|
||||
CFLAGS += -arch i386 -arch x86_64
|
||||
LDFLAGS += -arch i386 -arch x86_64
|
||||
endif
|
||||
LDFLAGS += -dynamiclib -install_name /sw/lib/libst.$(MAJOR).$(DSO_SUFFIX) -compatibility_version $(MAJOR) -current_version $(VERSION)
|
||||
OTHER_FLAGS = -Wall
|
||||
endif
|
||||
|
||||
ifeq ($(OS), FREEBSD)
|
||||
SFLAGS = -fPIC
|
||||
LDFLAGS = -shared -soname=$(SONAME) -lc
|
||||
OTHER_FLAGS = -Wall
|
||||
ifeq ($(shell test -f /usr/include/sys/event.h && echo yes), yes)
|
||||
DEFINES += -DMD_HAVE_KQUEUE
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq (HPUX, $(findstring HPUX, $(OS)))
|
||||
ifeq ($(OS), HPUX_64)
|
||||
DEFINES = -DHPUX
|
||||
CFLAGS = -Ae +DD64 +Z
|
||||
else
|
||||
CFLAGS = -Ae +DAportable +Z
|
||||
endif
|
||||
RANLIB = true
|
||||
LDFLAGS = -b
|
||||
DSO_SUFFIX = sl
|
||||
endif
|
||||
|
||||
ifeq (IRIX, $(findstring IRIX, $(OS)))
|
||||
ifeq ($(OS), IRIX_64)
|
||||
DEFINES = -DIRIX
|
||||
ABIFLAG = -64
|
||||
else
|
||||
ABIFLAG = -n32
|
||||
endif
|
||||
RANLIB = true
|
||||
CFLAGS = $(ABIFLAG) -mips3
|
||||
LDFLAGS = $(ABIFLAG) -shared
|
||||
OTHER_FLAGS = -fullwarn
|
||||
endif
|
||||
|
||||
ifeq ($(OS), LINUX)
|
||||
EXTRA_OBJS = $(TARGETDIR)/md.o
|
||||
SFLAGS = -fPIC
|
||||
LDFLAGS = -shared -soname=$(SONAME) -lc
|
||||
OTHER_FLAGS = -Wall
|
||||
ifeq ($(shell test -f /usr/include/sys/epoll.h && echo yes), yes)
|
||||
DEFINES += -DMD_HAVE_EPOLL
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(OS), NETBSD)
|
||||
SFLAGS = -fPIC
|
||||
LDFLAGS = -shared -soname=$(SONAME) -lc
|
||||
OTHER_FLAGS = -Wall
|
||||
endif
|
||||
|
||||
ifeq ($(OS), OPENBSD)
|
||||
SFLAGS = -fPIC
|
||||
LDFLAGS = -shared -soname=$(SONAME) -lc
|
||||
OTHER_FLAGS = -Wall
|
||||
ifeq ($(shell test -f /usr/include/sys/event.h && echo yes), yes)
|
||||
DEFINES += -DMD_HAVE_KQUEUE
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(OS), OSF1)
|
||||
RANLIB = true
|
||||
LDFLAGS = -shared -all -expect_unresolved "*"
|
||||
endif
|
||||
|
||||
ifeq (SOLARIS, $(findstring SOLARIS, $(OS)))
|
||||
TARGETDIR = $(OS)_$(shell uname -r | sed 's/^5/2/')_$(BUILD)
|
||||
CC = gcc
|
||||
LD = gcc
|
||||
RANLIB = true
|
||||
LDFLAGS = -G
|
||||
OTHER_FLAGS = -Wall
|
||||
ifeq ($(OS), SOLARIS_64)
|
||||
DEFINES = -DSOLARIS
|
||||
CFLAGS += -m64
|
||||
LDFLAGS += -m64
|
||||
endif
|
||||
endif
|
||||
|
||||
#
|
||||
# End of platform section.
|
||||
##########################
|
||||
|
||||
|
||||
ifeq ($(BUILD), OPT)
|
||||
OTHER_FLAGS += -O
|
||||
else
|
||||
OTHER_FLAGS += -g
|
||||
DEFINES += -DDEBUG
|
||||
endif
|
||||
CFLAGS =
|
||||
OTHER_FLAGS += -Wall -g -O0
|
||||
DEFINES = -D$(OS) -DDEBUG -DMD_HAVE_EPOLL
|
||||
|
||||
##########################
|
||||
# Other possible defines:
|
||||
|
@ -285,81 +102,23 @@ endif
|
|||
|
||||
CFLAGS += $(DEFINES) $(OTHER_FLAGS) $(EXTRA_CFLAGS)
|
||||
|
||||
OBJS = $(TARGETDIR)/sched.o \
|
||||
$(TARGETDIR)/stk.o \
|
||||
$(TARGETDIR)/sync.o \
|
||||
$(TARGETDIR)/key.o \
|
||||
$(TARGETDIR)/io.o \
|
||||
$(TARGETDIR)/event.o
|
||||
OBJS = $(TARGETDIR)/sched.o \
|
||||
$(TARGETDIR)/stk.o \
|
||||
$(TARGETDIR)/sync.o \
|
||||
$(TARGETDIR)/key.o \
|
||||
$(TARGETDIR)/io.o \
|
||||
$(TARGETDIR)/event.o \
|
||||
$(TARGETDIR)/srs.o
|
||||
OBJS += $(EXTRA_OBJS)
|
||||
HEADER = $(TARGETDIR)/st.h
|
||||
SLIBRARY = $(TARGETDIR)/libst.a
|
||||
DLIBRARY = $(TARGETDIR)/libst.$(DSO_SUFFIX).$(VERSION)
|
||||
EXAMPLES = examples
|
||||
SRS = $(TARGETDIR)/srs
|
||||
|
||||
LINKNAME = libst.$(DSO_SUFFIX)
|
||||
SONAME = libst.$(DSO_SUFFIX).$(MAJOR)
|
||||
FULLNAME = libst.$(DSO_SUFFIX).$(VERSION)
|
||||
|
||||
ifeq ($(OS), CYGWIN)
|
||||
SONAME = cygst.$(DSO_SUFFIX)
|
||||
SLIBRARY = $(TARGETDIR)/libst.dll.a
|
||||
DLIBRARY = $(TARGETDIR)/$(SONAME)
|
||||
LINKNAME =
|
||||
# examples directory does not compile under cygwin
|
||||
EXAMPLES =
|
||||
endif
|
||||
|
||||
ifeq ($(OS), DARWIN)
|
||||
LINKNAME = libst.$(DSO_SUFFIX)
|
||||
SONAME = libst.$(MAJOR).$(DSO_SUFFIX)
|
||||
FULLNAME = libst.$(VERSION).$(DSO_SUFFIX)
|
||||
endif
|
||||
|
||||
ifeq ($(STATIC_ONLY), yes)
|
||||
LIBRARIES = $(SLIBRARY)
|
||||
else
|
||||
LIBRARIES = $(SLIBRARY) $(DLIBRARY)
|
||||
endif
|
||||
|
||||
ifeq ($(OS),)
|
||||
ST_ALL = unknown
|
||||
else
|
||||
ST_ALL = $(TARGETDIR) $(LIBRARIES) $(HEADER) $(EXAMPLES) $(DESC)
|
||||
endif
|
||||
|
||||
all: $(ST_ALL)
|
||||
|
||||
unknown:
|
||||
@echo
|
||||
@echo "Please specify one of the following targets:"
|
||||
@echo
|
||||
@for target in $(TARGETS); do echo $$target; done
|
||||
@echo
|
||||
|
||||
st.pc: st.pc.in
|
||||
sed "s/@VERSION@/${VERSION}/g" < $< > $@
|
||||
all: $(TARGETDIR) $(SRS)
|
||||
|
||||
$(TARGETDIR):
|
||||
if [ ! -d $(TARGETDIR) ]; then mkdir $(TARGETDIR); fi
|
||||
|
||||
$(SLIBRARY): $(OBJS)
|
||||
$(AR) $(ARFLAGS) $@ $(OBJS)
|
||||
$(RANLIB) $@
|
||||
rm -f obj; $(LN) $(LNFLAGS) $(TARGETDIR) obj
|
||||
|
||||
$(DLIBRARY): $(OBJS:%.o=%-pic.o)
|
||||
$(LD) $(LDFLAGS) $^ -o $@
|
||||
if test "$(LINKNAME)"; then \
|
||||
cd $(TARGETDIR); \
|
||||
rm -f $(SONAME) $(LINKNAME); \
|
||||
$(LN) $(LNFLAGS) $(FULLNAME) $(SONAME); \
|
||||
$(LN) $(LNFLAGS) $(FULLNAME) $(LINKNAME); \
|
||||
fi
|
||||
|
||||
$(HEADER): public.h
|
||||
rm -f $@
|
||||
cp public.h $@
|
||||
$(SRS): $(OBJS)
|
||||
$(CC) $(CFLAGS) -o $@ $(OBJS)
|
||||
|
||||
$(TARGETDIR)/md.o: md.S
|
||||
$(CC) $(CFLAGS) -c $< -o $@
|
||||
|
@ -367,103 +126,5 @@ $(TARGETDIR)/md.o: md.S
|
|||
$(TARGETDIR)/%.o: %.c common.h md.h
|
||||
$(CC) $(CFLAGS) -c $< -o $@
|
||||
|
||||
examples::
|
||||
@echo Making $@
|
||||
@cd $@; $(MAKE) CC="$(CC)" CFLAGS="$(CFLAGS)" OS="$(OS)" TARGETDIR="$(TARGETDIR)"
|
||||
|
||||
clean:
|
||||
rm -rf *_OPT *_DBG obj st.pc
|
||||
|
||||
##########################
|
||||
# Pattern rules:
|
||||
|
||||
ifneq ($(SFLAGS),)
|
||||
# Compile with shared library options if it's a C file
|
||||
$(TARGETDIR)/%-pic.o: %.c common.h md.h
|
||||
$(CC) $(CFLAGS) $(SFLAGS) -c $< -o $@
|
||||
endif
|
||||
|
||||
# Compile assembly as normal or C as normal if no SFLAGS
|
||||
%-pic.o: %.o
|
||||
rm -f $@; $(LN) $(LNFLAGS) $(<F) $@
|
||||
|
||||
##########################
|
||||
# Target rules:
|
||||
|
||||
default-debug:
|
||||
. ./osguess.sh; $(MAKE) OS="$$OS" BUILD="DBG"
|
||||
default default-optimized:
|
||||
. ./osguess.sh; $(MAKE) OS="$$OS" BUILD="OPT"
|
||||
|
||||
aix-debug:
|
||||
$(MAKE) OS="AIX" BUILD="DBG"
|
||||
aix-optimized:
|
||||
$(MAKE) OS="AIX" BUILD="OPT"
|
||||
|
||||
cygwin-debug:
|
||||
$(MAKE) OS="CYGWIN" BUILD="DBG"
|
||||
cygwin-optimized:
|
||||
$(MAKE) OS="CYGWIN" BUILD="OPT"
|
||||
|
||||
darwin-debug:
|
||||
$(MAKE) OS="DARWIN" BUILD="DBG"
|
||||
darwin-optimized:
|
||||
$(MAKE) OS="DARWIN" BUILD="OPT"
|
||||
|
||||
freebsd-debug:
|
||||
$(MAKE) OS="FREEBSD" BUILD="DBG"
|
||||
freebsd-optimized:
|
||||
$(MAKE) OS="FREEBSD" BUILD="OPT"
|
||||
|
||||
hpux-debug:
|
||||
$(MAKE) OS="HPUX" BUILD="DBG"
|
||||
hpux-optimized:
|
||||
$(MAKE) OS="HPUX" BUILD="OPT"
|
||||
hpux-64-debug:
|
||||
$(MAKE) OS="HPUX_64" BUILD="DBG"
|
||||
hpux-64-optimized:
|
||||
$(MAKE) OS="HPUX_64" BUILD="OPT"
|
||||
|
||||
irix-n32-debug:
|
||||
$(MAKE) OS="IRIX" BUILD="DBG"
|
||||
irix-n32-optimized:
|
||||
$(MAKE) OS="IRIX" BUILD="OPT"
|
||||
irix-64-debug:
|
||||
$(MAKE) OS="IRIX_64" BUILD="DBG"
|
||||
irix-64-optimized:
|
||||
$(MAKE) OS="IRIX_64" BUILD="OPT"
|
||||
|
||||
linux-debug:
|
||||
$(MAKE) OS="LINUX" BUILD="DBG"
|
||||
linux-optimized:
|
||||
$(MAKE) OS="LINUX" BUILD="OPT"
|
||||
# compatibility
|
||||
linux-ia64-debug: linux-debug
|
||||
linux-ia64-optimized: linux-optimized
|
||||
|
||||
netbsd-debug:
|
||||
$(MAKE) OS="NETBSD" BUILD="DBG"
|
||||
netbsd-optimized:
|
||||
$(MAKE) OS="NETBSD" BUILD="OPT"
|
||||
|
||||
openbsd-debug:
|
||||
$(MAKE) OS="OPENBSD" BUILD="DBG"
|
||||
openbsd-optimized:
|
||||
$(MAKE) OS="OPENBSD" BUILD="OPT"
|
||||
|
||||
osf1-debug:
|
||||
$(MAKE) OS="OSF1" BUILD="DBG"
|
||||
osf1-optimized:
|
||||
$(MAKE) OS="OSF1" BUILD="OPT"
|
||||
|
||||
solaris-debug:
|
||||
$(MAKE) OS="SOLARIS" BUILD="DBG"
|
||||
solaris-optimized:
|
||||
$(MAKE) OS="SOLARIS" BUILD="OPT"
|
||||
solaris-64-debug:
|
||||
$(MAKE) OS="SOLARIS_64" BUILD="DBG"
|
||||
solaris-64-optimized:
|
||||
$(MAKE) OS="SOLARIS_64" BUILD="OPT"
|
||||
|
||||
##########################
|
||||
|
||||
rm -rf $(TARGETDIR)
|
||||
|
|
7
trunk/research/st/srs.c
Normal file
7
trunk/research/st/srs.c
Normal file
|
@ -0,0 +1,7 @@
|
|||
#include "public.h"
|
||||
|
||||
int main(int argc, char** argv)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
2
trunk/research/st/st/st.upp
Normal file → Executable file
2
trunk/research/st/st/st.upp
Normal file → Executable file
|
@ -1,5 +1,7 @@
|
|||
file
|
||||
main readonly separator,
|
||||
..\srs.c,
|
||||
st readonly separator,
|
||||
..\common.h,
|
||||
..\event.c,
|
||||
..\io.c,
|
||||
|
|
Loading…
Reference in a new issue