# Makefile for cln/examples
# This is only needed while CLN has not been installed in a public place on
# your system (such as /usr/local/include and /usr/local/lib). Once CLN is
# installed, a simple C++ compiler command suffices.

#### Start of system configuration section. ####

# Directories used by "make":
srcdir = .
top_srcdir = ..

# Programs used by "make":
# C compiler
CC = ppc-pld-linux-gcc
CFLAGS = -O2 -fno-strict-aliasing -fwrapv -fsigned-char -gdwarf-2 -g2 
CPP = ppc-pld-linux-gcc -E
CPPFLAGS = -D_FORTIFY_SOURCE=2 
# C++ compiler
CXX = ppc-pld-linux-g++
CXXFLAGS = -O2 -fno-strict-aliasing -fwrapv -fsigned-char -gdwarf-2 -g2 
CXXCPP = ppc-pld-linux-g++ -E
INCLUDES = -I../include -I${top_srcdir}/include -I${srcdir}
override CPPFLAGS += ${INCLUDES}
LIBTOOL = $(SHELL) $(top_builddir)/libtool
LIBTOOL_LINK = ${LIBTOOL} --mode=link
MV = mv
LN = ln
RM = rm -f

EXEEXT = 

#### End of system configuration section. ####

SHELL = /bin/sh

# Needed by ${LIBTOOL}.
top_builddir = ..



FILES_CC := $(notdir $(wildcard ${srcdir}/*.cc))
FILES_CC := $(filter-out %.i.cc, ${FILES_CC})

FILES_I_CC := $(patsubst %.cc,%.i.cc,${FILES_CC})

FILES_S := $(patsubst %.cc,%.s,${FILES_CC})

FILES_O := $(patsubst %.cc,%.o,${FILES_CC})

OBJECTS = ${FILES_O}

LIBS = ../src/libcln.la -lm
LIBDEPS = ../src/libcln.la

PROGRAMS = $(addsuffix ${EXEEXT},contfrac e fibonacci legendre lucaslehmer nextprime perfnum pi)
MODULES_contfrac = contfrac
MODULES_e = e
MODULES_fibonacci = fibonacci
MODULES_legendre = legendre
MODULES_lucaslehmer = lucaslehmer
MODULES_nextprime = nextprime
MODULES_perfnum = perfnum
MODULES_pi = pi

all : $(addsuffix ${EXEEXT}, contfrac e fibonacci legendre lucaslehmer nextprime perfnum pi)

%.s : %.c
	${CC} ${CFLAGS} ${CPPFLAGS} ${TARGET_ARCH} -S $< -o $@

%.s : %.cc
	${CXX} ${CXXFLAGS} ${CPPFLAGS} ${TARGET_ARCH} -S $< -o $@

%.o : %.c
	${CC} ${CFLAGS} ${CPPFLAGS} ${TARGET_ARCH} -c $< -o $@

%.o : %.cc
	${CXX} ${CXXFLAGS} ${CPPFLAGS} ${TARGET_ARCH} -c $< -o $@

%.i : %.c
	${CPP} ${CFLAGS} ${CPPFLAGS} ${TARGET_ARCH} $< > $@

%.i.cc : %.cc
	${CXXCPP} ${CXXFLAGS} ${CPPFLAGS} ${TARGET_ARCH} $< > $@

contfrac${EXEEXT} : $(patsubst %,%.o,${MODULES_contfrac})
e${EXEEXT} : $(patsubst %,%.o,${MODULES_e})
fibonacci${EXEEXT} : $(patsubst %,%.o,${MODULES_fibonacci})
legendre${EXEEXT} : $(patsubst %,%.o,${MODULES_legendre})
lucaslehmer${EXEEXT} : $(patsubst %,%.o,${MODULES_lucaslehmer})
nextprime${EXEEXT} : $(patsubst %,%.o,${MODULES_nextprime})
perfnum${EXEEXT} : $(patsubst %,%.o,${MODULES_perfnum})
pi${EXEEXT} : $(patsubst %,%.o,${MODULES_pi})
${PROGRAMS} : %${EXEEXT} : ${LIBDEPS}
	${LIBTOOL_LINK} ${CXX} ${CXXFLAGS} ${TARGET_ARCH} $(patsubst %,%.o,$(MODULES_$(*F))) ${LDFLAGS} ${LIBS} -o $@


install : all

installdirs :

uninstall :

check : all

mostlyclean : clean

clean : force
	${RM} *.s *.o *.a ${PROGRAMS} a.out core
	${RM} -r .libs _libs

distclean : clean
	${RM} config.status config.log config.cache Makefile

maintainer-clean : distclean

force :
