1# Copyright (C) 2016 and later: Unicode, Inc. and others.
2# License & terms of use: http://www.unicode.org/copyright.html
3#******************************************************************************
4#
5#   Copyright (C) 1999-2011, International Business Machines
6#   Corporation and others.  All Rights Reserved.
7#
8#******************************************************************************
9## Makefile.in for ICU - tools/ctestfw
10## Stephen F. Booth
11
12## Source directory information
13srcdir = @srcdir@
14top_srcdir = @top_srcdir@
15
16top_builddir = ../..
17
18## All the flags and other definitions are included here.
19include $(top_builddir)/icudefs.mk
20
21## Build directory information
22subdir = tools/ctestfw
23
24## Extra files to remove for 'make clean'
25CLEANFILES = *~ $(DEPS) $(IMPORT_LIB) $(MIDDLE_IMPORT_LIB) $(FINAL_IMPORT_LIB)
26
27## Target information
28
29TARGET_STUBNAME=$(CTESTFW_STUBNAME)
30
31ifneq ($(ENABLE_STATIC),)
32TARGET = $(LIBSICU)$(TARGET_STUBNAME)$(ICULIBSUFFIX).$(A)
33endif
34
35ifneq ($(ENABLE_SHARED),)
36SO_TARGET = $(LIBICU)$(TARGET_STUBNAME)$(ICULIBSUFFIX).$(SO)
37ALL_SO_TARGETS = $(SO_TARGET) $(MIDDLE_SO_TARGET) $(FINAL_SO_TARGET) $(SHARED_OBJECT)
38endif
39
40ALL_TARGETS = $(TARGET) $(ALL_SO_TARGETS)
41
42DYNAMICCPPFLAGS = $(SHAREDLIBCPPFLAGS)
43DYNAMICCFLAGS = $(SHAREDLIBCFLAGS)
44DYNAMICCXXFLAGS = $(SHAREDLIBCXXFLAGS)
45CFLAGS += $(LIBCFLAGS)
46CXXFLAGS += $(LIBCXXFLAGS)
47
48CPPFLAGS += -I$(top_srcdir)/common -I$(top_srcdir)/i18n -I$(srcdir)/../toolutil -I$(srcdir) $(LIBCPPFLAGS) $(CPPFLAGSCTESTFW)
49DEFS += -DT_CTEST_IMPLEMENTATION
50LDFLAGS += $(LDFLAGSCTESTFW)
51LIBS = $(LIBICUTOOLUTIL) $(LIBICUI18N) $(LIBICUUC) $(DEFAULT_LIBS)
52
53SOURCES = $(shell cat $(srcdir)/sources.txt)
54OBJECTS = $(patsubst %.cpp,%.o,$(patsubst %.c,%.o, $(SOURCES)))
55
56STATIC_OBJECTS = $(OBJECTS:.o=.$(STATIC_O))
57
58DEPS = $(OBJECTS:.o=.d)
59
60-include Makefile.local
61
62## List of phony targets
63.PHONY : all all-local install install-local clean clean-local	\
64distclean distclean-local dist dist-local check check-local
65
66## Clear suffix list
67.SUFFIXES :
68
69## List of standard targets
70all: all-local
71install: install-local
72clean: clean-local
73distclean : distclean-local
74dist: dist-local
75check: all check-local
76
77all-local: $(ALL_TARGETS)
78
79install-local: install-library
80
81install-library: all-local
82	$(MKINSTALLDIRS) $(DESTDIR)$(libdir)
83ifneq ($(ENABLE_STATIC),)
84	$(INSTALL-L) $(TARGET) $(DESTDIR)$(libdir)
85endif
86ifneq ($(ENABLE_SHARED),)
87# For MinGW, do we want the DLL to go in the bin location?
88ifeq ($(MINGW_MOVEDLLSTOBINDIR),YES)
89	$(MKINSTALLDIRS) $(DESTDIR)$(bindir)
90	$(INSTALL-L) $(FINAL_SO_TARGET) $(DESTDIR)$(bindir)
91else
92	$(INSTALL-L) $(FINAL_SO_TARGET) $(DESTDIR)$(libdir)
93ifneq ($(FINAL_SO_TARGET),$(SO_TARGET))
94	cd $(DESTDIR)$(libdir) && $(RM) $(notdir $(SO_TARGET)) && ln -s $(notdir $(FINAL_SO_TARGET)) $(notdir $(SO_TARGET))
95ifneq ($(FINAL_SO_TARGET),$(MIDDLE_SO_TARGET))
96	cd $(DESTDIR)$(libdir) && $(RM) $(notdir $(MIDDLE_SO_TARGET)) && ln -s $(notdir $(FINAL_SO_TARGET)) $(notdir $(MIDDLE_SO_TARGET))
97endif
98endif
99endif
100ifneq ($(IMPORT_LIB_EXT),)
101	$(INSTALL-L) $(FINAL_IMPORT_LIB) $(DESTDIR)$(libdir)
102ifneq ($(IMPORT_LIB),$(FINAL_IMPORT_LIB))
103	cd $(DESTDIR)$(libdir) && $(RM) $(notdir $(IMPORT_LIB)) && ln -s $(notdir $(FINAL_IMPORT_LIB)) $(notdir $(IMPORT_LIB))
104endif
105ifneq ($(MIDDLE_IMPORT_LIB),$(FINAL_IMPORT_LIB))
106	cd $(DESTDIR)$(libdir) && $(RM) $(notdir $(MIDDLE_IMPORT_LIB)) && ln -s $(notdir $(FINAL_IMPORT_LIB)) $(notdir $(MIDDLE_IMPORT_LIB))
107endif
108endif
109endif
110
111dist-local:
112
113clean-local:
114	test -z "$(CLEANFILES)" || $(RMV) $(CLEANFILES)
115	$(RMV) $(OBJECTS) $(STATIC_OBJECTS) $(ALL_TARGETS)
116
117distclean-local: clean-local
118	$(RMV) Makefile
119
120check-local: all-local
121
122Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status
123	cd $(top_builddir) \
124	 && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
125
126ifneq ($(ENABLE_STATIC),)
127$(TARGET): $(STATIC_OBJECTS)
128	$(AR) $(ARFLAGS) $(AR_OUTOPT)$@ $^
129	$(RANLIB) $@
130endif
131
132ifneq ($(ENABLE_SHARED),)
133$(SHARED_OBJECT): $(OBJECTS)
134	$(SHLIB.cc) $(LD_SONAME) $(OUTOPT)$@ $^ $(LIBS)
135ifeq ($(ENABLE_RPATH),YES)
136ifneq ($(wildcard $(libdir)/$(MIDDLE_SO_TARGET)),)
137	$(warning RPATH warning: --enable-rpath means test programs may use existing $(libdir)/$(MIDDLE_SO_TARGET))
138endif
139endif
140endif
141
142ifeq (,$(MAKECMDGOALS))
143-include $(DEPS)
144else
145ifneq ($(patsubst %clean,,$(MAKECMDGOALS)),)
146-include $(DEPS)
147endif
148endif
149
150