📄 dir.mk
字号:
IDLMODULE_MAJOR = 1IDLMODULE_MINOR = 0IDLMODULE_VERSION = 0x2420# => CORBA 2.4, front-end 2.0DIR_CPPFLAGS += -DIDLMODULE_VERSION="\"$(IDLMODULE_VERSION)\""ifndef PYTHONall:: @$(NoPythonError)export:: @$(NoPythonError)endifSUBDIRS = cccpall:: @$(MakeSubdirs)export:: @$(MakeSubdirs)ifdef INSTALLTARGETinstall:: @$(MakeSubdirs)endifOBJS = y.tab.o lex.yy.o idlerr.o idlutil.o idltype.o \ idlrepoId.o idlscope.o idlexpr.o idlast.o idlvalidate.o \ idldump.o idlconfig.o idlfixed.oPYOBJS = idlpython.oCXXSRCS = y.tab.cc lex.yy.cc idlerr.cc idlutil.cc idltype.cc \ idlrepoId.cc idlscope.cc idlexpr.cc idlast.cc idlvalidate.cc \ idldump.cc idlconfig.cc idlfixed.cc idlpython.cc idlc.ccYYSRC = idl.yyLLSRC = idl.llFLEX = flex -tBISON = bison -d -o y.tab.cidlc = $(patsubst %,$(BinPattern),idlc)# y.tab.h y.tab.cc: $(YYSRC)# @-$(RM) $@# $(BISON) $<# mv -f y.tab.c y.tab.cc# lex.yy.cc: $(LLSRC) y.tab.h# $(FLEX) $< | sed -e 's/^#include <unistd.h>//' > $@# echo '#ifdef __VMS' >> $@# echo '// Some versions of DEC C++ for OpenVMS set the module name used by the' >> $@# echo '// librarian based on the last #line encountered.' >> $@# echo '#line' `cat $@ | wc -l` '"lex_yy.cc"' >> $@# echo '#endif' >> $@############################################################################## Make variables for Unix platforms ##############################################################################ifdef UnixPlatform#CXXDEBUGFLAGS = -gPYPREFIX := $(shell $(PYTHON) -c 'import sys; print sys.exec_prefix')PYVERSION := $(shell $(PYTHON) -c 'import sys; print sys.version[:3]')PYINCDIR := $(PYPREFIX)/includePYINCFILE := "<python$(PYVERSION)/Python.h>"DIR_CPPFLAGS += -I$(PYINCDIR) -DPYTHON_INCLUDE=$(PYINCFILE)endififeq ($(platform),autoconf)namespec := _omniidlmodule _ $(IDLMODULE_MAJOR) $(IDLMODULE_MINOR)ifdef PythonSHAREDLIB_SUFFIXSHAREDLIB_SUFFIX = $(PythonSHAREDLIB_SUFFIX)endifSharedLibraryFullNameTemplate = $$1$$2.$(SHAREDLIB_SUFFIX).$$3.$$4SharedLibrarySoNameTemplate = $$1$$2.$(SHAREDLIB_SUFFIX).$$3SharedLibraryLibNameTemplate = $$1$$2.$(SHAREDLIB_SUFFIX)ifdef PythonLibraryPlatformLinkFlagsTemplateSharedLibraryPlatformLinkFlagsTemplate = $(PythonLibraryPlatformLinkFlagsTemplate)endifshlib := $(shell $(SharedLibraryFullName) $(namespec))DIR_CPPFLAGS += $(SHAREDLIB_CPPFLAGS)#### ugly AIX section startifdef AIXDIR_CPPFLAGS += -I. -I/usr/local/include -DNO_STRCASECMPCXXLINK = makeC++SharedLib_rlibinit = init_omniidlpy_exp = $(PYPREFIX)/lib/python$(PYVERSION)/config/python.exp$(shlib): $(OBJS) $(PYOBJS) @(set -x; \ $(RM) $@; \ $(CXXLINK) \ -n $(libinit) \ -o $(shlib) \ -bI:$(py_exp) \ $(IMPORT_LIBRARY_FLAGS) \ -bhalt:4 -T512 -H512 \ $(filter-out $(LibSuffixPattern),$^) \ -p 40 \ ; \ )else#### ugly AIX section end, normal build command$(shlib): $(OBJS) $(PYOBJS) @(namespec="$(namespec)"; extralibs="$(extralibs)"; $(MakeCXXSharedLibrary))endifall:: $(shlib)export:: $(shlib) @(namespec="$(namespec)"; $(ExportSharedLibrary))ifdef INSTALLTARGETinstall:: $(shlib) @(dir="$(INSTALLPYEXECDIR)"; namespec="$(namespec)"; \ $(ExportSharedLibraryToDir))endifclean:: $(RM) *.o (dir=.; $(CleanSharedLibrary))veryclean:: $(RM) *.o (dir=.; $(CleanSharedLibrary))ifdef CygwinSharedLibraryPlatformLinkFlagsTemplate = -shared -Wl,-soname=$$soname,--export-dynamic,--enable-auto-importextralibs += -L$(PYPREFIX)/lib/python$(PYVERSION)/config \ -lpython$(PYVERSION).dllendifelse############################################################################## Make rules for Linux ##############################################################################ifdef LinuxCXXOPTIONS += -fpiclibname = _omniidlmodule.sosoname = $(libname).$(IDLMODULE_MAJOR)lib = $(soname).$(IDLMODULE_MINOR)all:: $(lib)$(lib): $(OBJS) $(PYOBJS) (set -x; \ $(RM) $@; \ $(CXXLINK) $(CXXLINKOPTIONS) -shared -o $@ -Wl,-soname,$(soname) $(IMPORT_LIBRARY_FLAGS) \ $(filter-out $(LibSuffixPattern),$^) $(LIBS)\ )export:: $(lib) @$(ExportLibrary) @(set -x; \ cd $(EXPORT_TREE)/$(LIBDIR); \ $(RM) $(soname); \ ln -s $(lib) $(soname); \ $(RM) $(libname); \ ln -s $(soname) $(libname); \ )clean:: $(RM) $(lib)endif############################################################################## Make rules for Solaris 2.x ##############################################################################ifdef SunOSlibname = _omniidlmodule.sosoname = $(libname).$(IDLMODULE_MAJOR)lib = $(soname).$(IDLMODULE_MINOR)ifeq ($(notdir $(CXX)),CC)CXXOPTIONS += -Kpic$(lib): $(OBJS) $(PYOBJS) (set -x; \ $(RM) $@; \ if (CC -V 2>&1 | grep '5\.[0-9]'); \ then CXX_RUNTIME=-lCrun; \ else CXX_RUNTIME=-lC; \ fi; \ $(CXX) -ptv -G -o $@ -h $(soname) $(IMPORT_LIBRARY_FLAGS) \ $(patsubst %,-R %,$(IMPORT_LIBRARY_DIRS)) \ $(filter-out $(LibSuffixPattern),$^) -lposix4 -lnsl $$CXX_RUNTIME \ )endififeq ($(notdir $(CXX)),g++)CXXOPTIONS += -fPIC$(lib): $(OBJS) $(PYOBJS) (set -x; \ $(RM) $@; \ $(CXXLINK) $(CXXLINKOPTIONS) -shared -o $@ -Wl-soname,$(soname) $(IMPORT_LIBRARY_FLAGS) \ $(filter-out $(LibSuffixPattern),$^) \ )endifall:: $(lib)clean:: $(RM) $(lib)export:: $(lib) @$(ExportLibrary) @(set -x; \ cd $(EXPORT_TREE)/$(LIBDIR); \ $(RM) $(soname); \ ln -s $(lib) $(soname); \ $(RM) $(libname); \ ln -s $(soname) $(libname); \ )endif############################################################################## Make rules for Windows ##############################################################################ifdef Win32PlatformDIR_CPPFLAGS += -DMSDOS -DOMNIIDL_EXECUTABLE# A Python Windows source tree has PC/pyconfig.h and PCbuild/*.lib# We specify all directories for both a source and binary tree -# the others just wont be used.PYPREFIX1 := "$(shell $(PYTHON) -c 'import sys,string; sys.stdout.write(string.lower(sys.prefix))')"PYPREFIX := $(subst program files,progra~1,$(subst \,/,$(PYPREFIX1)))PYVERSION := $(shell $(PYTHON) -c 'import sys; sys.stdout.write(sys.version[:3])')PYINCDIR := $(PYPREFIX)/includePYLIBDIR := $(PYPREFIX)/libs $(PYPREFIX)/lib/x86_win32 $(PYPREFIX)/PCbuildDIR_CPPFLAGS += -I$(PYINCDIR) -I$(PYPREFIX)/PC \ -I$(PYINCDIR)/python$(PYVERSION) \ -DPYTHON_INCLUDE="<Python.h>"ifdef MinGW32BuildPYLIB := -lpython$(subst .,,$(PYVERSION))CXXLINKOPTIONS += $(patsubst %,-L%,$(PYLIBDIR))elsePYLIB := python$(subst .,,$(PYVERSION)).libCXXLINKOPTIONS += $(patsubst %,-libpath:%,$(PYLIBDIR))endifomniidl = $(patsubst %,$(BinPattern),omniidl)all:: $(omniidl)export:: $(omniidl) @$(ExportExecutable)clean:: $(RM) $(omniidl)$(omniidl): $(OBJS) $(PYOBJS) @(libs="$(PYLIB)"; $(CXXExecutable))endif############################################################################## Make rules for AIX ##############################################################################ifdef AIXDIR_CPPFLAGS += -I. -I/usr/local/include -DNO_STRCASECMPlib = _omniidlmodule.solibinit = init_omniidlpy_exp = $(PYPREFIX)/lib/python$(PYVERSION)/config/python.expifeq ($(notdir $(CXX)),xlC_r)$(lib): $(OBJS) $(PYOBJS) @(set -x; \ $(RM) $@; \ $(MAKECPPSHAREDLIB) \ -o $(lib) \ -bI:$(py_exp) \ -n $(libinit) \ $(IMPORT_LIBRARY_FLAGS) \ -bhalt:4 -T512 -H512 \ $(filter-out $(LibSuffixPattern),$^) \ -p 40 \ ; \ )all:: $(lib)clean:: $(RM) $(lib)export:: $(lib) @$(ExportLibrary)endififeq ($(notdir $(CXX)),g++)# Build omniidl as an executable by linking in the Python runtime# library. Is this really necessary? Can't we make a Python# extension?DIR_CPPFLAGS += -DOMNIIDL_EXECUTABLE
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -