xref: /petsc/makefile (revision 5d1fa148568c2c4605d32f6641ed56cdf1a97d15)
1#
2# This is the makefile for installing TAO. See the file
3# docs/installation.html for directions on installing TAO.
4# See also bmake/common for additional commands.
5#
6ALL: all
7
8
9# Call make recursively in these directory
10DIRS = src include docs tests
11
12include ${TAO_DIR}/conf/tao_base
13
14#
15# Basic targets to build TAO libraries.
16# all     : builds the C/C++ and Fortran libraries
17all       : tao_info tao_chk_tao_dir tao_chk_lib_dir tao_deletelibs tao_build tao_shared
18#
19# Prints information about the system and version of TAO being compiled
20#
21tao_info:
22	-@echo "=========================================="
23	-@echo " "
24	-@echo "See docs/troubleshooting.html and docs/bugreporting.html"
25	-@echo "for help with installation problems. Please send EVERYTHING"
26	-@echo "printed out below when reporting problems."
27	-@echo " "
28	-@echo "To subscribe to the TAO users mailing list, send mail to "
29	-@echo "majordomo@mcs.anl.gov with the message: "
30	-@echo "subscribe tao-news"
31	-@echo " "
32	-@echo "=========================================="
33	-@echo On `date` on `hostname`
34	-@echo Machine characteristics: `uname -a`
35	-@echo "-----------------------------------------"
36	-@echo "Using PETSc directory: ${PETSC_DIR}"
37	-@echo "Using PETSc arch: ${PETSC_ARCH}"
38	-@echo "Using TAO directory: ${TAO_DIR}"
39	-@echo "-----------------------------------------"
40	-@grep "define PETSC_VERSION" ${PETSC_DIR}/include/petscversion.h | ${SED} "s/........//"
41	-@grep TAO_VERSION_NUMBER include/tao_version.h | sed "s/........//"
42	-@echo "-----------------------------------------"
43	-@echo "Using include paths: ${TAO_INCLUDE}"
44	-@echo "------------------------------------------"
45	-@echo "Using C/C++ compiler: ${CC} ${CC_FLAGS} ${COPTFLAGS} ${CFLAGS}"
46	-@echo "C/C++ Compiler version: " `${CCV}`
47	-@if [ "${FC}" != "" ]; then \
48	   echo "Using Fortran compiler: ${FC} ${FC_FLAGS} ${FFLAGS} ${FPP_FLAGS}";\
49	   echo "Fortran Compiler version: " `${FCV}`;\
50         fi
51	-@echo "-----------------------------------------"
52	-@echo "Using C/C++ linker: ${CC_LINKER}"
53	-@if [ "${FC}" != "" ]; then \
54	   echo "Using Fortran linker: ${FC_LINKER}";\
55         fi
56	-@echo "-----------------------------------------"
57	-@echo "Using libraries: ${TAO_LIB}"
58	-@echo "------------------------------------------"
59	-@echo "Using mpiexec: ${MPIEXEC}"
60	-@echo "=========================================="
61
62MINFO = ${PETSC_DIR}/${PETSC_ARCH}/include/petscmachineinfo.h
63tao_info_h:
64	-@$(RM) -f ${MINFO} MINFO
65	-@echo  "static const char *petscmachineinfo = \"\__n__\"" >> MINFO
66	-@echo  "\"-----------------------------------------\__n__\"" >> MINFO
67	-@if [ -f /usr/bin/cygcheck.exe ]; then \
68	  echo  "\"Libraries compiled on `date` on `hostname|/usr/bin/dos2unix` \__n__\"" >> MINFO; \
69          else \
70	  echo  "\"Libraries compiled on `date` on `hostname` \__n__\"" >> MINFO; \
71          fi
72	-@echo  "\"Machine characteristics: `uname -a` \__n__\"" >> MINFO
73	-@echo  "\"Using PETSc directory: ${PETSC_DIR}\__n__\"" >> MINFO
74	-@echo  "\"Using PETSc arch: ${PETSC_ARCH}\__n__\"" >> MINFO
75	-@echo  "\"-----------------------------------------\"; " >> MINFO
76	-@echo  "static const char *petsccompilerinfo = \"\__n__\"" >> MINFO
77	-@echo  "\"Using C compiler: ${PCC} ${PCC_FLAGS} ${COPTFLAGS} ${CFLAGS}\__n__\"" >> MINFO
78	-@echo  "\"Using Fortran compiler: ${FC} ${FC_FLAGS} ${FFLAGS} ${FPP_FLAGS}\__n__\"" >> MINFO
79	-@echo  "\"-----------------------------------------\"; " >> MINFO
80	-@echo  "static const char *petsccompilerflagsinfo = \"\__n__\"" >> MINFO
81	-@echo  "\"Using include paths: ${PETSC_INCLUDE}\__n__\"" >> MINFO
82	-@echo  "\"------------------------------------------\"; " >> MINFO
83	-@echo  "static const char *petsclinkerinfo = \"\__n__\"" >> MINFO
84	-@echo  "\"Using C linker: ${CLINKER}\__n__\"" >> MINFO
85	-@echo  "\"Using Fortran linker: ${FLINKER}\__n__\"" >> MINFO
86	-@echo  "\"Using libraries: ${PETSC_LIB} \__n__\"" >> MINFO
87	-@echo  "\"------------------------------------------\"; " >> MINFO
88	-@cat MINFO | ${SED} -e 's/\\ /\\\\ /g' | ${SED} -e 's/__n__/n/g' > ${MINFO}
89	-@ if [ -f /usr/bin/cygcheck.exe ]; then /usr/bin/dos2unix ${MINFO} 2> /dev/null; fi
90	-@$(RM) -f MINFO
91
92
93
94
95
96#
97# Builds the TAO libraries
98# This target also builds fortran77 and f90 interface
99# files and compiles .F files
100#
101tao_build:
102	-@echo "BEGINNING TO COMPILE LIBRARIES IN ALL DIRECTORIES"
103	-@echo "========================================="
104	-@${OMAKE}  PETSC_ARCH=${PETSC_ARCH} PETSC_DIR=${PETSC_DIR} TAO_DIR=${TAO_DIR} ACTION=libfast tree
105	-@${RANLIB} ${TAO_LIB_DIR}/*.${AR_LIB_SUFFIX}
106	-@echo "Completed building libraries"
107	-@echo "========================================="
108
109#
110
111# Deletes TAO libraries
112tao_deletelibs:
113	-${RM} -f ${PETSC_LIB_DIR}/libtao*.*
114
115
116tao_shared: shared
117
118
119tao_alletags:
120	-@maint/generateetags.py
121
122
123tao_testexamples_c:
124	-@${OMAKE} PETSC_ARCH=${PETSC_ARCH} PETSC_DIR=${PETSC_DIR} TAO_DIR=${TAO_DIR} ACTION=testexamples_C tree
125
126
127# Builds Fortran stub files
128tao_allfortranstubs:
129	-@maint/generatefortranstubs.py ${BFORT}
130
131
132tao_chk_lib_dir: chklib_dir
133