Makefile   [plain text]


# Copyright (c) 2000-2010 IBM, Inc. and others
# udata sample code
# Usage:
#  - configure, build, install ICU
#  - ensure that 'icu-config' is in the PATH (PREFIX/bin/icu-config) 
#  - if ICU is not built relative to this directory,
#      set the variable ICU_PATH to the 'icu' directory
#       (i.e.  /foo/icu  )
#  - do 'make' in this directory


# Include ICU standard definitions
include ../defs.mk

# look for the ICU_PATH variable, guess if not there
ICU_DEFAULT_PATH=../../..

ifeq ($(strip $(ICU_PATH)),)
  ICU_PATH=$(ICU_DEFAULT_PATH)
endif

# Name of your target
TARGET1=reader
TARGET2=writer

# All object files (C or C++)
OBJECTS1=reader.o
OBJECTS2=writer.o
OBJECTS=$(OBJECTS1) $(OBJECTS2)

CLEANFILES=*~ $(TARGET).out $(TARGET1).out $(TARGET2).out

all: $(TARGET1) $(TARGET2)

# The following lines are to make sure ICU_PATH is set properly.
writer.o: $(ICU_PATH)/source/tools/toolutil/uoptions.h

$(ICU_PATH)/source/tools/toolutil/uoptions.h:
	@echo
	@echo "*** Please read the directions at the top of this file (Makefile)"
	@echo "*** Can't open $@ - check ICU_PATH"
	@echo
	@false

# Only the writer needs these, actually.
CPPFLAGS += -I$(ICU_PATH)/source/tools/toolutil
LDFLAGS += -L$(ICU_PATH)/source/tools/toolutil $(shell icu-config --ldflags-toolutil)


.PHONY: all clean distclean check report

distclean clean:
	-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
	-$(RMV) $(OBJECTS) $(TARGET1) $(TARGET2)

# Can change this to LINK.c if it is a C only program
# Can add more libraries here. 
$(TARGET1): $(OBJECTS1)
	$(CC) -o $@ $^ $(LDFLAGS)

$(TARGET2): $(OBJECTS2)
	$(CC) -o $@ $^ $(LDFLAGS)

# Make check: simply runs the sample, logged to a file
check: $(TARGET1) $(TARGET2)
	$(INVOKE) ./$(TARGET2) | tee $(TARGET2).out
	$(INVOKE) ./$(TARGET1) | tee $(TARGET1).out