d145902b17
include the change. This commit was SVN r8412.
253 строки
7.5 KiB
Bash
253 строки
7.5 KiB
Bash
#!/bin/sh
|
|
#
|
|
# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
|
# University Research and Technology
|
|
# Corporation. All rights reserved.
|
|
# Copyright (c) 2004-2005 The University of Tennessee and The University
|
|
# of Tennessee Research Foundation. All rights
|
|
# reserved.
|
|
# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
|
# University of Stuttgart. All rights reserved.
|
|
# Copyright (c) 2004-2005 The Regents of the University of California.
|
|
# All rights reserved.
|
|
# $COPYRIGHT$
|
|
#
|
|
# Additional copyrights may follow
|
|
#
|
|
# $HEADER$
|
|
#
|
|
# This is a simple makefile for windows which makes all the components
|
|
# which are required for super computing. Too lazy to open up visual
|
|
# studio each and every time to compile a component, so just adding
|
|
# this to the svn repository
|
|
#
|
|
|
|
topdir := $(shell cygpath -m $(CURDIR))/..
|
|
prefix = ${topdir}/src/Debug
|
|
installdir = ${prefix}
|
|
pkgdatadir = ${prefix}/share
|
|
sysconfdir = ${prefix}/etc
|
|
pkglibdir = ${prefix}/lib
|
|
|
|
# list of components to build with the c compiler
|
|
C_SUBDIRS = \
|
|
attribute \
|
|
class \
|
|
communicator \
|
|
datatype \
|
|
errhandler \
|
|
event \
|
|
event/WIN32-Code \
|
|
dps \
|
|
file \
|
|
group \
|
|
info \
|
|
util \
|
|
mpi/c \
|
|
mpi/runtime \
|
|
threads \
|
|
op \
|
|
proc \
|
|
request \
|
|
runtime \
|
|
mca/base \
|
|
mca/allocator/base \
|
|
mca/coll/base \
|
|
mca/gpr/base \
|
|
mca/gpr/base/data_type_support \
|
|
mca/gpr/base/pack_api_cmd \
|
|
mca/gpr/base/unpack_api_response \
|
|
mca/io/base \
|
|
mca/iof/base \
|
|
mca/errmgr/base \
|
|
mca/rml/base \
|
|
mca/rmgr/base \
|
|
mca/rmgr/base/data_type_support \
|
|
mca/rmaps/base \
|
|
mca/soh/base \
|
|
mca/soh/base/data_type_support \
|
|
mca/mpool/base \
|
|
mca/ns/base \
|
|
mca/ns/base/data_type_support \
|
|
mca/oob/base \
|
|
mca/pml/base \
|
|
mca/ptl/base \
|
|
mca/pls/base \
|
|
mca/pls/fork \
|
|
mca/pls/proxy \
|
|
mca/pls/rsh \
|
|
mca/ras/base \
|
|
mca/ras/host \
|
|
mca/rds/base \
|
|
mca/rds/hostfile \
|
|
mca/rds/resfile \
|
|
mca/topo/base \
|
|
mca/schema/base \
|
|
win32/generated_source \
|
|
win \
|
|
win32
|
|
|
|
EXTRA_DIRS =
|
|
|
|
#
|
|
# Files included by the dist that we don't want to compile
|
|
#
|
|
EXCLUDE_FILES = dt_arch.c \
|
|
epoll.c \
|
|
epoll_sub.c \
|
|
kqueue.c \
|
|
llm_base_parse_hostfile_lex.c \
|
|
misc.c \
|
|
poll.c \
|
|
rtsig.c \
|
|
stacktrace.c \
|
|
condition_spinlock.c
|
|
|
|
#
|
|
# A small function to extract the list of all files in these directories
|
|
#
|
|
SOURCE_FILES = $(foreach dir, ${C_SUBDIRS}, $(wildcard ${dir}/*.[c]))
|
|
OBJECT_FILES = $(SOURCE_FILES:.c=.obj)
|
|
DEBUG = Debug
|
|
LINKED_SOURCE = $(foreach dir, ${DEBUG}, $(wildcard ${dir}/*.[c]))
|
|
LINKED_OBJS = $(LINKED_SOURCE:.c=.obj)
|
|
|
|
.SUFFIXES: .c .obj
|
|
CC = cl
|
|
CXX = $(CC)
|
|
|
|
INCL = \
|
|
/I"${topdir}/src/win32/generated_include" \
|
|
/I"${topdir}/src/win32" \
|
|
/I"${topdir}/include" \
|
|
/I"${topdir}/src" \
|
|
/I"${topdir}/src/event/compat/" \
|
|
/I"${topdir}/src/event" \
|
|
/I"${topdir}/src/event/WIN32-Code/"
|
|
|
|
CFLAGS = \
|
|
/DWIN32 \
|
|
/DOMPI_SYSCONFDIR="\"${sysconfdir}\"" \
|
|
/DOMPI_PKGLIBDIR="\"${pkglibdir}\"" \
|
|
/DOMPI_PKGDATADIR="\"${pkgdatadir}\"" \
|
|
/DHAVE_CONFIG_H \
|
|
/D_WINDLL \
|
|
/EHsc \
|
|
/ML \
|
|
/W0 \
|
|
/Wp64 \
|
|
/TC \
|
|
/D_MBCS \
|
|
/Fo"${topdir}/src/Debug/" \
|
|
/nologo \
|
|
/c
|
|
|
|
STATIC_LIBS = \
|
|
allocator \
|
|
coll\
|
|
ns\
|
|
gpr \
|
|
topo\
|
|
errmgr \
|
|
rml \
|
|
rmgr \
|
|
rmaps \
|
|
soh \
|
|
ptl\
|
|
oob\
|
|
pml\
|
|
pls\
|
|
ras \
|
|
rds \
|
|
schema \
|
|
iof
|
|
|
|
CXXFLAGS = $(CFLAGS) $(INCL)
|
|
|
|
LINK = link
|
|
|
|
LINKFLAGS = \
|
|
/DLL \
|
|
/OPT:NOICF \
|
|
/OPT:NOREF \
|
|
/IMPLIB:libmpi.lib\
|
|
/nologo \
|
|
/OUT:libmpi.dll
|
|
|
|
ADDLIBS = \
|
|
ws2_32.lib \
|
|
kernel32.lib \
|
|
user32.lib \
|
|
gdi32.lib \
|
|
winspool.lib \
|
|
comdlg32.lib \
|
|
advapi32.lib \
|
|
shell32.lib \
|
|
ole32.lib \
|
|
oleaut32.lib \
|
|
uuid.lib \
|
|
odbc32.lib \
|
|
odbccp32.lib
|
|
|
|
.c.obj:
|
|
$(CXX) $(CXXFLAGS) $*.c
|
|
|
|
all: libmpi
|
|
|
|
prebuild:
|
|
@echo "Creating mca_base_parse_paramfile_lex.c"
|
|
@/usr/bin/flex -t -Pmca_base_yy "${topdir}/src/mca/base/mca_base_parse_paramfile_lex.l" \
|
|
>"${topdir}/src/mca/base/mca_base_parse_paramfile_lex.c" 2>/dev/null
|
|
@echo "Creating mca_rds_hostfile_lex.c"
|
|
@/usr/bin/flex -t -Porte_rds_hostfile_ "${topdir}/src/mca/rds/hostfile/rds_hostfile_lex.l" \
|
|
> "${topdir}/src/mca/rds/hostfile/rds_hostfile_lex.c" 2>/dev/null
|
|
@echo "Creating show_help_lex.c"
|
|
@/usr/bin/flex -t -Popal_show_help_yy "${topdir}/src/opal/util/show_help_lex.l" \
|
|
> "${topdir}/src/opal/util/show_help_lex.c" 2>/dev/null
|
|
@for dirs in ${STATIC_LIBS}; do \
|
|
(dir="mca/$${dirs}/base"; echo "Making Static components in $${dirs}"; comp_name="$${dirs}_static-components.h"; cp "${topdir}/src/win32/generated_include/$${comp_name}" "$${dir}/static-components.h";); \
|
|
done
|
|
@echo "Creating Version Headers"
|
|
@cp "${topdir}/src/win32/generated_include/pls-fork-version.h" "${topdir}/src/mca/pls/fork/pls-fork-version.h";
|
|
@cp "${topdir}/src/win32/generated_include/pls-proxy-version.h" "${topdir}/src/mca/pls/proxy/pls-proxy-version.h";
|
|
@cp "${topdir}/src/win32/generated_include/pls-rsh-version.h" "${topdir}/src/mca/pls/rsh/pls-rsh-version.h";
|
|
@for dirs in ${C_SUBDIRS}; do \
|
|
(echo "Entering $${dirs}"; cd $$dirs; if test -f .compile_files; then (more .compile_files| xargs -i'{}' ln -f '{}' ${topdir}/src/Debug/'{}'); else (ls *.c 2>/dev/null | xargs -i'{}' ln -f '{}' ${topdir}/src/Debug/'{}'); fi); \
|
|
done
|
|
@for file in ${EXCLUDE_FILES}; do \
|
|
(echo "Removing $${file}"; cd ${topdir}/src/Debug/; rm -f $${file}); \
|
|
done
|
|
@echo "done"
|
|
|
|
|
|
libmpi: $(LINKED_OBJS)
|
|
${LINK} ${LINKFLAGS} ${ADDLIBS} $(LINKED_OBJS)
|
|
|
|
install:
|
|
@echo -n "Installing libmpi and include file ................"
|
|
@install -d ${topdir}/src ${installdir}/lib
|
|
@install -p ${topdir}/src/libmpi.lib ${installdir}/lib/libmpi.lib
|
|
@install -p ${topdir}/src/libmpi.exp ${installdir}/lib/libmpi.exp
|
|
@install -p ${topdir}/src/libmpi.dll ${installdir}/lib/libmpi.dll
|
|
@install -d ${topdir}/include ${installdir}/include/
|
|
@install -p ${topdir}/include/ompi_config_bottom.h \
|
|
${installdir}/include/ompi_config_bottom.h
|
|
@install -p ${topdir}/src/win32/generated_include/ompi_config.h \
|
|
${installdir}/include/ompi_config.h
|
|
@install -p ${topdir}/include/mpi.h ${installdir}/include/mpi.h
|
|
@install -p ${topdir}/include/ompi_stdint.h ${installdir}/include/ompi_stdint.h
|
|
@install -d ${topdir}/src/win32 ${installdir}/include/win32
|
|
@install -p ${topdir}/src/win32/win_compat.h ${installdir}/include/win32/win_compat.h
|
|
@echo "done"
|
|
|
|
.PHONY: clean
|
|
|
|
clean:
|
|
@for dirs in ${C_SUBDIRS}; do \
|
|
(echo "Entering $$dirs"; cd $$dirs; rm -rf *.lib *.obj *.exp;); \
|
|
done
|
|
@for dirs in ${C_PPSUBDIRS}; do \
|
|
(echo "Entering $$dirs"; cd $$dirs; rm -rf *.lib *.obj *.exp;); \
|
|
done
|
|
@echo "Entering ${topdir}/src/Debug ... "; cd ${topdir}/src/Debug; rm -rf *.lib *.obj *.exp *.c;
|