139 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			Makefile
		
	
	
	
			
		
		
	
	
			139 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			Makefile
		
	
	
	
| ## -*-makefile-*-
 | |
| ## Copyright (C) 2016 and later: Unicode, Inc. and others.
 | |
| ## License & terms of use: http://www.unicode.org/copyright.html
 | |
| ## HP/UX-specific setup using aCC
 | |
| ## Copyright (c) 1999-2012, International Business Machines Corporation and
 | |
| ## others. All Rights Reserved.
 | |
| 
 | |
| ## Commands to generate dependency files
 | |
| GEN_DEPS.c=	:
 | |
| GEN_DEPS.cc= 	:
 | |
| 
 | |
| ## Flags for position independent code
 | |
| SHAREDLIBCFLAGS = +Z
 | |
| SHAREDLIBCXXFLAGS = +Z
 | |
| 
 | |
| ## Additional flags when building libraries with threads
 | |
| ## We use this instead of -mt, which isn't available in all versions of aCC
 | |
| ## Our tools won't compile with -D_POSIX_C_SOURCE=199506L
 | |
| THREADSCPPFLAGS = -D_REENTRANT -D_THREAD_SAFE
 | |
| 
 | |
| # Use Extended ANSI mode, which is useful for 64-bit numbers
 | |
| # +W ignores some warnings
 | |
| #    740 Unsafe cast between pointers/references to incomplete classes...
 | |
| #    749 This operation is non-portable and potentially unsafe.
 | |
| #        (Ironically the solution to fix this warning is non-portable)
 | |
| #    823 Redundant preprocessing concatenation operation results in two valid
 | |
| #        preprocessing tokens. This comes from INT64_C in <inttypes.h>
 | |
| #   4232 conversion to a more strictly aligned type may cause misaligned access.
 | |
| CFLAGS += -Ae +Olit=all
 | |
| CXXFLAGS += -AA -Wc,-ansi_for_scope,on +W740 +W749 +W823 +W4232
 | |
| 
 | |
| ifeq ($(UCLN_NO_AUTO_CLEANUP),0)
 | |
| # set up init point.
 | |
| UCLN_FINI =  ucln_fini$(TARGET_STUBNAME)_$(SO_TARGET_VERSION_MAJOR)$(ICULIBSUFFIXCNAME)
 | |
| CPPFLAGS_FINI = -DUCLN_FINI=$(UCLN_FINI)
 | |
| LDFLAGS_FINI = -Wl,+fini,$(UCLN_FINI)
 | |
| 
 | |
| CPPFLAGSICUUC += $(CPPFLAGS_FINI)
 | |
| LDFLAGSICUUC += $(LDFLAGS_FINI)
 | |
| CPPFLAGSICUIO += $(CPPFLAGS_FINI)
 | |
| LDFLAGSICUIO += $(LDFLAGS_FINI)
 | |
| CPPFLAGSICUI18N += $(CPPFLAGS_FINI)
 | |
| LDFLAGSICUI18N += $(LDFLAGS_FINI)
 | |
| CPPFLAGSCTESTFW += $(CPPFLAGS_FINI)
 | |
| LDFLAGSCTESTFW += $(LDFLAGS_FINI)
 | |
| 
 | |
| # ICUUC, ICUIO, ICUI18N, CTESTFW
 | |
| endif
 | |
| 
 | |
| # -Bhidden_def Hides all symbols defined in the module.
 | |
| #LIBCFLAGS = -Bhidden_def
 | |
| #LIBCXXFLAGS = -Bhidden_def
 | |
| 
 | |
| ## Commands to compile
 | |
| COMPILE.c=	$(CC) $(DEFS) $(CPPFLAGS) $(CFLAGS) -c
 | |
| COMPILE.cc=	$(CXX) $(DEFS) $(CPPFLAGS) $(CXXFLAGS) -c
 | |
| 
 | |
| ## Common 'default' path to ensure the sanity of users.  Search the current
 | |
| ## directory, at least.
 | |
| LD_DEFAULTPATH= -Wl,+b,'$$'ORIGIN/
 | |
| 
 | |
| # Use SHLIB_PATH and LD_LIBRARY_PATH to locate shared libraries
 | |
| LDFLAGS += -Wl,+s $(LD_DEFAULTPATH)
 | |
| 
 | |
| ## Commands to link
 | |
| ## For aCC, use the C++ linker so that __shlinit gets defined
 | |
| LINK.c=		$(CXX) $(CXXFLAGS) $(LDFLAGS)
 | |
| LINK.cc=	$(CXX) $(CXXFLAGS) $(LDFLAGS)
 | |
| 
 | |
| ## Shared library options
 | |
| ## HPUX PA-risc does not recognize -Bprotected_def aC++ option.
 | |
| ## Use linker option -Wl,-B,symbolic instead.
 | |
| ifeq ($(shell uname -m),ia64)
 | |
| LD_SOOPTIONS= -Bprotected_def
 | |
| else
 | |
| LD_SOOPTIONS= -Wl,-B,symbolic
 | |
| endif
 | |
| 
 | |
| ## Commands to make a shared library
 | |
| #SHLIB.c=	$(LD) $(LDFLAGS) -b
 | |
| SHLIB.c=	$(CXX) $(CXXFLAGS) $(LDFLAGS) -b $(LD_SOOPTIONS)
 | |
| SHLIB.cc=	$(CXX) $(CXXFLAGS) $(LDFLAGS) -b $(LD_SOOPTIONS)
 | |
| 
 | |
| ## Compiler switch to embed a runtime search path
 | |
| LD_RPATH=	-Wl,+b,
 | |
| LD_RPATH_PRE= 	
 | |
| 
 | |
| ## Environment variable to set a runtime search path
 | |
| LDLIBRARYPATH_ENVVAR = SHLIB_PATH
 | |
| 
 | |
| ## Compiler switch to embed a library name
 | |
| LD_SONAME = -Wl,+h,$(notdir $(MIDDLE_SO_TARGET))
 | |
| 
 | |
| ## The type of assembly needed when pkgdata is used for generating shared libraries.
 | |
| # Commented out for now because the hp1 test machine runs out of memory.
 | |
| #GENCCODE_ASSEMBLY=-a aCC-parisc
 | |
| 
 | |
| ## Shared object suffix
 | |
| SO=		sl
 | |
| ## Non-shared intermediate object suffix
 | |
| STATIC_O = o
 | |
| 
 | |
| ## Compilation rules
 | |
| %.$(STATIC_O): $(srcdir)/%.c
 | |
| 	$(COMPILE.c) $(STATICCPPFLAGS) $(STATICCFLAGS) -o $@ $<
 | |
| %.o: $(srcdir)/%.c
 | |
| 	$(COMPILE.c) $(DYNAMICCPPFLAGS) $(DYNAMICCFLAGS) -o $@ $<
 | |
| 
 | |
| %.$(STATIC_O): $(srcdir)/%.cpp
 | |
| 	$(COMPILE.cc) $(STATICCPPFLAGS) $(STATICCXXFLAGS) -o $@ $<
 | |
| %.o: $(srcdir)/%.cpp
 | |
| 	$(COMPILE.cc) $(DYNAMICCPPFLAGS) $(DYNAMICCXXFLAGS) -o $@ $<
 | |
| 
 | |
| 
 | |
| ## Dependency rules
 | |
| %.d : $(srcdir)/%.c
 | |
| 	@echo "generating dependency information for $<"
 | |
| 	@$(GEN_DEPS.c) $< > $@
 | |
| 
 | |
| %.d : $(srcdir)/%.cpp
 | |
| 	@echo "generating dependency information for $<"
 | |
| 	@$(GEN_DEPS.cc) $< > $@
 | |
| 
 | |
| ## Versioned libraries rules
 | |
| 
 | |
| %.$(SO).$(SO_TARGET_VERSION_MAJOR): %.$(SO).$(SO_TARGET_VERSION)
 | |
| 	$(RM) $@ && ln -s ${<F} $@
 | |
| %.$(SO): %.$(SO).$(SO_TARGET_VERSION_MAJOR)
 | |
| 	$(RM) $@ && ln -s ${*F}.$(SO).$(SO_TARGET_VERSION) $@
 | |
| 
 | |
| ## Install libraries as executable
 | |
| INSTALL-L=$(INSTALL_PROGRAM)
 | |
| 
 | |
| ## Remove shared library 's'
 | |
| STATIC_PREFIX_WHEN_USED = 
 | |
| STATIC_PREFIX = 
 | |
| 
 | |
| ## End HP/UX-specific setup
 |