📄 makefile.in
字号:
# # The contents of this file are subject to the Mozilla Public# License Version 1.1 (the "License"); you may not use this file# except in compliance with the License. You may obtain a copy of# the License at http://www.mozilla.org/MPL/# # Software distributed under the License is distributed on an "AS# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or# implied. See the License for the specific language governing# rights and limitations under the License.# # The Original Code is the Netscape Portable Runtime (NSPR).# # The Initial Developer of the Original Code is Netscape# Communications Corporation. Portions created by Netscape are # Copyright (C) 1998-2000 Netscape Communications Corporation. All# Rights Reserved.# # Contributor(s):# # Alternatively, the contents of this file may be used under the# terms of the GNU General Public License Version 2 or later (the# "GPL"), in which case the provisions of the GPL are applicable # instead of those above. If you wish to allow use of your # version of this file only under the terms of the GPL and not to# allow others to use your version of this file under the MPL,# indicate your decision by deleting the provisions above and# replace them with the notice and other provisions required by# the GPL. If you do not delete the provisions above, a recipient# may use your version of this file under either the MPL or the# GPL.# #! gmakeMOD_DEPTH = ../..topsrcdir = @top_srcdir@srcdir = @srcdir@VPATH = @srcdir@include $(MOD_DEPTH)/config/autoconf.mkinclude $(topsrcdir)/config/config.mkDIRS = dllCSRCS = \ accept.c \ acceptread.c \ acceptreademu.c \ addrstr.c \ affinity.c \ alarm.c \ anonfm.c \ append.c \ atomic.c \ attach.c \ bigfile.c \ bigfile2.c \ bigfile3.c \ cleanup.c \ cltsrv.c \ concur.c \ cvar.c \ cvar2.c \ dceemu.c \ dlltest.c \ dtoa.c \ env.c \ errcodes.c \ errset.c \ exit.c \ fdcach.c \ fileio.c \ foreign.c \ forktest.c \ fsync.c \ gethost.c \ getproto.c \ i2l.c \ initclk.c \ inrval.c \ instrumt.c \ intrio.c \ intrupt.c \ io_timeout.c \ ioconthr.c \ ipv6.c \ join.c \ joinkk.c \ joinku.c \ joinuk.c \ joinuu.c \ layer.c \ lazyinit.c \ lltest.c \ lock.c \ lockfile.c \ logger.c \ makedir.c \ mbcs.c \ multiacc.c \ multiwait.c \ many_cv.c \ nameshm1.c \ nbconn.c \ nblayer.c \ nonblock.c \ ntioto.c \ ntoh.c \ obsints.c \ op_2long.c \ op_excl.c \ op_filnf.c \ op_filok.c \ op_noacc.c \ op_nofil.c \ openfile.c \ parent.c \ peek.c \ perf.c \ pipeping.c \ pipeping2.c \ pipepong.c \ pipepong2.c \ pipeself.c \ poll_er.c \ poll_nm.c \ poll_to.c \ pollable.c \ prftest.c \ prftest1.c \ prftest2.c \ primblok.c \ priotest.c \ provider.c \ prpoll.c \ prpollml.c \ ranfile.c \ randseed.c \ rmdir.c \ rwlocktest.c \ sel_spd.c \ selct_er.c \ selct_nm.c \ selct_to.c \ select2.c \ selintr.c \ sem.c \ sema.c \ semaerr.c \ semaerr1.c \ semaping.c \ semapong.c \ sendzlf.c \ server_test.c \ servr_kk.c \ servr_ku.c \ servr_uk.c \ servr_uu.c \ short_thread.c \ sigpipe.c \ socket.c \ sockopt.c \ sockping.c \ sockpong.c \ sprintf.c \ sproc_ch.c \ sproc_p.c \ stack.c \ stdio.c \ str2addr.c \ strod.c \ suspend.c \ switch.c \ system.c \ testbit.c \ testfile.c \ thrpool_server.c \ thrpool_client.c \ threads.c \ thruput.c \ timemac.c \ timetest.c \ tmoacc.c \ tmocon.c \ tpd.c \ vercheck.c \ version.c \ udpsrv.c \ writev.c \ xnotify.c \ y2k.c \ y2ktmo.c \ zerolen.c \ $(NULL)ifeq ($(OS_TARGET),OS2)CSRCS += \ sleep.c \ stat.c \ yield.c \ $(NULL)endififeq (,$(filter-out WINNT OS2,$(OS_ARCH)))PROG_SUFFIX = .exeelsePROG_SUFFIX =endifPROGS = $(addprefix $(OBJDIR)/, $(CSRCS:.c=$(PROG_SUFFIX)))TARGETS = $(PROGS)INCLUDES = -I$(dist_includedir) -I$(topsrcdir)/pr/include -I$(topsrcdir)/pr/include/privateifeq ($(OS_ARCH), WINNT) LDOPTS = -NOLOGO -DEBUG -DEBUGTYPE:CV -INCREMENTAL:NO ifdef PROFILE LDOPTS += -PROFILE -MAP endif # profileendififeq ($(OS_ARCH),OS2)ifeq ($(MOZ_OS2_TOOLS),VACPP) LDOPTS = -NOE -DEBUG -nologo -PMTYPE:VIOelseifeq ($(MOZ_OS2_EMX_OBJECTFORMAT),OMF) LDOPTS = -Zlinker /PM:VIOendifendifendififneq ($(OS_ARCH), WINNT)# Use an absolute pathname as the runtime library path (for the -R# or -rpath linker option or the LD_RUN_PATH environment variable).ifeq (,$(patsubst /%,,$(DIST)))# $(DIST) is already an absolute pathname.ABSOLUTE_LIB_DIR = $(dist_libdir)else# $(DIST) is a relative pathname: prepend the current directory.PWD = $(shell pwd)ABSOLUTE_LIB_DIR = $(PWD)/$(dist_libdir)endifendififeq ($(OS_ARCH), IRIX) ifeq ($(USE_CPLUS), 1) CC = CC endif LDOPTS += -rpath $(ABSOLUTE_LIB_DIR) ifdef NS_USE_GCC LDOPTS += -Wl,-rdata_shared else LDOPTS += -rdata_shared endif# For 6.x machines, include this flag ifeq ($(basename $(OS_RELEASE)),6) ifndef NS_USE_GCC ifeq ($(USE_N32),1) LDOPTS += -n32 else LDOPTS += -32 endif ifeq ($(USE_PTHREADS), 1) ifeq ($(OS_RELEASE), 6.2) LDOPTS += -Wl,-woff,85 endif endif endif endifendififeq ($(OS_ARCH), OSF1) ifeq ($(USE_CPLUS), 1) CC = cxx endif# I haven't figured out how to pass -rpath to cc on OSF1 V3.2, so# we do static linking. ifeq (,$(filter-out V2.0 V3.2,$(OS_RELEASE))) LIBNSPR = $(dist_libdir)/libnspr$(MOD_MAJOR_VERSION).a LIBPLC = $(dist_libdir)/libplc$(MOD_MAJOR_VERSION).a EXTRA_LIBS = -lc_r else LDOPTS += -rpath $(ABSOLUTE_LIB_DIR) endifendififeq ($(OS_ARCH), HP-UX) LDOPTS += -z -Wl,+s,+b,$(ABSOLUTE_LIB_DIR) ifeq ($(USE_64),1) LDOPTS += +DD64 endif ifeq ($(USE_PTHREADS),1) EXTRA_LIBS = $(LIBPTHREAD) endifendif# AIXifeq ($(OS_ARCH),AIX) LDOPTS += -blibpath:$(ABSOLUTE_LIB_DIR):/usr/lib:/lib ifneq ($(OS_ARCH)$(OS_RELEASE),AIX4.1) LDOPTS += -brtl EXTRA_LIBS = -ldl endifendif# Solarisifeq ($(OS_ARCH), SunOS) ifneq ($(OS_RELEASE), 4.1.3_U1) ifdef NS_USE_GCC LDOPTS += -Xlinker -R -Xlinker $(ABSOLUTE_LIB_DIR) else ifeq ($(USE_CPLUS), 1) CC = CC endif LDOPTS += -R $(ABSOLUTE_LIB_DIR) endif endif ifneq ($(LOCAL_THREADS_ONLY),1) ifdef USE_PTHREADS EXTRA_LIBS = -lpthread -lthread else EXTRA_LIBS = -lthread endif endif # LOCAL_THREADS_ONLYendif # SunOSifeq ($(OS_ARCH), NEC) EXTRA_LIBS = $(OS_LIBS)# This hardcodes in the executable programs the directory to find# libnspr.so etc. at program startup. Equivalent to the -R or -rpath# option for ld on other platforms. export LD_RUN_PATH = $(ABSOLUTE_LIB_DIR)endififeq ($(OS_ARCH), NCR)# NCR needs to link against -lsocket -lnsl -ldl (and -lc, which is# linked implicitly by $(CC)). Note that we did not link with these# system libraries when we built libnspr.so. EXTRA_LIBS = -lsocket -lnsl -ldl# This hardcodes in the executable programs the directory to find# libnspr.so etc. at program startup. Equivalent to the -R or -rpath # option for ld on other platforms. export LD_RUN_PATH = $(ABSOLUTE_LIB_DIR)endififeq ($(OS_ARCH), NEXTSTEP)# balazs.pataki@sztaki.hu: linkage is done in a different pass in the `tests'# modeul, so we have to pass the `-posix' flag by "hand" to `ld'LDOPTS += -posixendififeq ($(OS_ARCH), NEWS-OS)# This hardcodes in the executable programs the directory to find# libnspr.so etc. at program startup. Equivalent to the -R or -rpath # option for ld on other platforms.#export LD_RUN_PATH = $(ABSOLUTE_LIB_DIR) LIBNSPR = $(dist_libdir)/libnspr$(MOD_MAJOR_VERSION).a LIBPLC = $(dist_libdir)/libplc$(MOD_MAJOR_VERSION).a EXTRA_LIBS = -lsocket -lnsl -lgen -lresolvendififeq ($(OS_ARCH), Linux) ifeq ($(OS_RELEASE), 1.2) EXTRA_LIBS = -ldl else LDOPTS += -Xlinker -rpath $(ABSOLUTE_LIB_DIR) ifeq ($(USE_PTHREADS),1) EXTRA_LIBS = -lpthread endif endifendififeq ($(OS_ARCH), SCOOS)# SCO Unix needs to link against -lsocket again even though we# already linked with these system libraries when we built libnspr.so.EXTRA_LIBS = -lsocket# This hardcodes in the executable programs the directory to find# libnspr.so etc. at program startup. Equivalent to the -R or -rpath # option for ld on other platforms.export LD_RUN_PATH = $(ABSOLUTE_LIB_DIR)endififeq ($(OS_ARCH),SINIX)EXTRA_LIBS = -lsocket -lnsl -lresolv -ldl# This hardcodes in the executable programs the directory to find# libnspr.so etc. at program startup. Equivalent to the -R or -rpath# option for ld on other platforms.export LD_RUN_PATH = $(ABSOLUTE_LIB_DIR)endififeq ($(OS_ARCH),OpenUNIX)export LD_RUN_PATH = $(ABSOLUTE_LIB_DIR)ifeq ($(USE_PTHREADS),1)LDOPTS += -pthreadendifendififeq ($(OS_ARCH), UNIXWARE)export LD_RUN_PATH = $(ABSOLUTE_LIB_DIR)endififeq ($(OS_ARCH),FreeBSD)ifeq ($(USE_PTHREADS),1)LDOPTS += -pthreadendifLDOPTS += -Xlinker -R $(ABSOLUTE_LIB_DIR)endififeq ($(OS_ARCH),OpenBSD)ifeq ($(USE_PTHREADS),1)LDOPTS += -pthreadendifendififeq ($(OS_ARCH),BSD_OS)ifneq ($(OS_RELEASE),1.1)EXTRA_LIBS = -ldlendifendififeq ($(USE_PTHREADS),1)LIBPTHREAD = -lpthreadifeq ($(OS_ARCH),AIX)LIBPTHREAD = -lpthreadsendififeq (,$(filter-out FreeBSD OpenBSD BSD_OS NTO Darwin OpenUNIX,$(OS_ARCH)))LIBPTHREAD =endififeq ($(OS_ARCH)$(basename $(OS_RELEASE)),HP-UXB.10)LIBPTHREAD = -ldceendifendif####################################################### The rules######################################################include $(topsrcdir)/config/rules.mkAIX_PRE_4_2 = 0ifeq ($(OS_ARCH),AIX)ifeq ($(OS_RELEASE),4.1)ifneq ($(USE_PTHREADS), 1)#AIX_PRE_4_2 = 1endifendifendififeq ($(AIX_PRE_4_2),1)# AIX releases prior to 4.2 need a special two-step linking hack# in order to both override the system select() and be able to # get at the original system select().## We use a pattern rule in ns/nspr20/config/rules.mk to generate# the .$(OBJ_SUFFIX) file from the .c source file, then do the# two-step linking hack below.$(OBJDIR)/%: $(OBJDIR)/%.$(OBJ_SUFFIX) @$(MAKE_OBJDIR) rm -f $@ $(AIX_TMP) $(CC) $(AIX_LINK_OPTS) -o $(AIX_TMP) $< $(dist_libdir)/libnspr$(MOD_MAJOR_VERSION).a $(CC) -o $@ $(AIX_TMP) $(AIX_WRAP) rm -f $(AIX_TMP)else# All platforms that are not AIX pre-4.2.$(OBJDIR)/%$(PROG_SUFFIX): $(OBJDIR)/%.$(OBJ_SUFFIX) @$(MAKE_OBJDIR)ifeq ($(OS_ARCH), WINNT) link $(LDOPTS) $(EXTRA_LDOPTS) $< $(LIBPLC) $(LIBNSPR) $(EXTRA_LIBS) wsock32.lib -out:$@elseifeq ($(OS_ARCH),OS2) $(LD) $(EXEFLAGS) $(LDOPTS) $< $(LIBPLC) $(LIBNSPR) $(OS_LIBS) $(EXTRA_LIBS)else $(PURE) $(CC) $(XCFLAGS) $< $(LDOPTS) $(LIBPLC) $(LIBNSPR) $(EXTRA_LIBS) -o $@endif # OS/2endif # WINNTendif # AIX_PRE_4_2export:: $(TARGETS)clean:: rm -f $(TARGETS)# The following tests call BSD socket functions, so they need to link# with -lsocket on some platforms.ifeq ($(OS_ARCH),SunOS)ifneq ($(OS_RELEASE),4.1.3_U1)ifeq ($(USE_IPV6),1)$(OBJDIR)/gethost: $(OBJDIR)/gethost.o $(PURE) $(CC) $(XCFLAGS) $< $(LDOPTS) $(LIBPLC) $(LIBNSPR) -lsocket $(EXTRA_LIBS) -o $@endif$(OBJDIR)/prpoll: $(OBJDIR)/prpoll.o $(PURE) $(CC) $(XCFLAGS) $< $(LDOPTS) $(LIBPLC) $(LIBNSPR) -lsocket $(EXTRA_LIBS) -o $@endifendififeq ($(USE_PTHREADS), 1)$(OBJDIR)/attach: $(OBJDIR)/attach.o $(PURE) $(CC) $(XCFLAGS) $< $(LDOPTS) $(LIBPLC) $(LIBNSPR) $(LIBPTHREAD) $(EXTRA_LIBS) -o $@$(OBJDIR)/foreign: $(OBJDIR)/foreign.o $(PURE) $(CC) $(XCFLAGS) $< $(LDOPTS) $(LIBPLC) $(LIBNSPR) $(LIBPTHREAD) $(EXTRA_LIBS) -o $@$(OBJDIR)/provider: $(OBJDIR)/provider.o $(PURE) $(CC) $(XCFLAGS) $< $(LDOPTS) $(LIBPLC) $(LIBNSPR) $(LIBPTHREAD) $(EXTRA_LIBS) -o $@$(OBJDIR)/socket: $(OBJDIR)/socket.o $(PURE) $(CC) $(XCFLAGS) $< $(LDOPTS) $(LIBPLC) $(LIBNSPR) $(LIBPTHREAD) $(EXTRA_LIBS) -o $@$(OBJDIR)/testfile: $(OBJDIR)/testfile.o $(PURE) $(CC) $(XCFLAGS) $< $(LDOPTS) $(LIBPLC) $(LIBNSPR) $(LIBPTHREAD) $(EXTRA_LIBS) -o $@endif## Run the test programs with no arguments## Test output goes to the file pointed to by the environment variable# NSPR_TEST_LOGFILE, if set, else to /dev/null#ECHO = echoPROGRAMS = $(notdir $(PROGS))ifdef NSPR_TEST_LOGFILELOGFILE = $(NSPR_TEST_LOGFILE)elseifeq (,$(filter-out WINNT OS2,$(OS_ARCH)))LOGFILE = nulelseLOGFILE = /dev/nullendifendififeq ($(OS_TARGET),Linux)ECHO = /bin/echoendifALWAYS:runtests:: $(PROGS) ALWAYS @$(ECHO) "\nNSPR Test Results - $(OBJDIR)\n" @$(ECHO) "BEGIN\t\t\t`date`" @$(ECHO) "NSPR_TEST_LOGFILE\t$(LOGFILE)\n" @$(ECHO) "Test\t\t\tResult\n" @cd $(OBJDIR); for i in $(PROGRAMS); do \ $(ECHO) "$$i\c"; \ ./$$i >> $(LOGFILE) 2>&1 ; \ if [ 0 = $$? ] ; then \ $(ECHO) "\t\t\tPassed"; \ else \ $(ECHO) "\t\t\tFAILED"; \ fi; \ done @$(ECHO) "\nEND\t\t`date`\n"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -