Skip to content

Commit

Permalink
Working version with nicer makefiles
Browse files Browse the repository at this point in the history
  • Loading branch information
joezuntz committed Dec 14, 2017
1 parent 7809da8 commit ff4fa31
Show file tree
Hide file tree
Showing 19 changed files with 76 additions and 35 deletions.
27 changes: 16 additions & 11 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,5 +1,18 @@
include config/compilers.mk
include config/subdirs.mk
ifneq (clean,$(MAKECMDGOALS))
include cosmosis/compilers.mk
else
ifeq (${COSMOSIS_SRC_DIR},)
COSMOSIS_SRC_DIR=${PWD}
$(info here we are)
export COSMOSIS_SRC_DIR
else
COSMOSIS_SRC_DIR=${COSMOSIS_SRC_DIR}
endif
endif

include cosmosis/subdirs.mk



all:: config/first

Expand All @@ -11,12 +24,4 @@ config/first:
@echo
@touch config/first

SUBDIRS=cosmosis example-modules cosmosis-standard-library modules


ifneq ($(wildcard cosmosis-des-library/*),)
SUBDIRS+=cosmosis-des-library
$(info )
$(info Compiling DES code in cosmosis-des-library)
$(info )
endif
SUBDIRS=cosmosis
2 changes: 1 addition & 1 deletion bin/cosmosis-new-module
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ module_makefile_text = """
# If you already have your own Makefile you can
# replace all of this, but you need to keep this line
# at the top:
include ${COSMOSIS_SRC_DIR}/config/compilers.mk
include ${COSMOSIS_SRC_DIR}/cosmosis/compilers.mk
#For python, leave this as is. For C/C++/Fortran,
Expand Down
2 changes: 1 addition & 1 deletion config/vars.mk
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ MODULES = $(patsubst %.o,%.so,$(OBJ_MODULES))
TESTS = $(basename $(OBJ_TESTS))
EXE_TARGETS = $(basename $(OBJ_TARGETS))

include $(COSMOSIS_DIR)/config/compilers.mk
include $(COSMOSIS_DIR)/cosmosis/compilers.mk

LDLIBS=$(USER_LDLIBS) -l$(LIBNAME)

Expand Down
9 changes: 7 additions & 2 deletions cosmosis/Makefile
Original file line number Diff line number Diff line change
@@ -1,4 +1,9 @@
include ${COSMOSIS_SRC_DIR}/config/compilers.mk
include ${COSMOSIS_SRC_DIR}/config/subdirs.mk
ifneq (clean,$(MAKECMDGOALS))
include cosmosis/compilers.mk
endif

$(info ${COSMOSIS_SRC_DIR})

include ${COSMOSIS_SRC_DIR}/cosmosis/subdirs.mk

SUBDIRS=datablock samplers runtime
2 changes: 1 addition & 1 deletion cosmosis/compilers.mk
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ PEDANTIC_C_FLAGS=-Wall -Wextra -pedantic
CXXFLAGS=$(COMMON_C_FLAGS) $(USER_CXXFLAGS) -std=c++1y
CFLAGS=$(COMMON_C_FLAGS) $(USER_CFLAGS) -std=c99
FFLAGS=$(COMMON_FLAGS) -I${COSMOSIS_SRC_DIR}/cosmosis/datablock $(USER_FFLAGS) -std=gnu -ffree-line-length-none
LDFLAGS=$(USER_LDFLAGS) -L${COSMOSIS_SRC_DIR}/cosmosis/datablock
LDFLAGS=$(USER_LDFLAGS) -L${COSMOSIS_SRC_DIR}/cosmosis/datablock -Wl,-rpath,"${COSMOSIS_SRC_DIR}/cosmosis/datablock"
PYTHON=python
MAKEFLAGS += --print-directory

Expand Down
4 changes: 4 additions & 0 deletions cosmosis/configure.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import os
import sys
from . import compilers

if '--debug' in sys.argv:
common_flags = "-O3 -g -fPIC"
Expand All @@ -16,8 +17,11 @@
export CPLUS_INCLUDE_PATH=$C_INCLUDE_PATH:{cosmosis_src_dir}/cosmosis/datablock
export LIBRARY_PATH=$LIBRARY_PATH:{cosmosis_src_dir}/cosmosis/datablock
export COSMOSIS_ALT_COMPILERS=1
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:{cosmosis_src_dir}/cosmosis/datablock
export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:{cosmosis_src_dir}/cosmosis/datablock
""".format(**locals())

commands += compilers.compilers

if __name__ == '__main__':
print(commands)
Expand Down
2 changes: 1 addition & 1 deletion cosmosis/datablock/Makefile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
include ${COSMOSIS_SRC_DIR}/config/compilers.mk
include ${COSMOSIS_SRC_DIR}/cosmosis/compilers.mk

USER_CFLAGS=$(PEDANTIC_C_FLAGS) -Werror
USER_CXXFLAGS=$(PEDANTIC_C_FLAGS)
Expand Down
2 changes: 1 addition & 1 deletion cosmosis/dev/grid_test_modules/c/Makefile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
include ${COSMOSIS_SRC_DIR}/config/compilers.mk
include ${COSMOSIS_SRC_DIR}/cosmosis/compilers.mk

USER_LDFLAGS= -lcosmosis

Expand Down
2 changes: 1 addition & 1 deletion cosmosis/dev/grid_test_modules/f90/Makefile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
include ${COSMOSIS_SRC_DIR}/config/compilers.mk
include ${COSMOSIS_SRC_DIR}/cosmosis/compilers.mk

USER_LDFLAGS= -lcosmosis_fortran -lcosmosis

Expand Down
2 changes: 1 addition & 1 deletion cosmosis/runtime/Makefile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
include ${COSMOSIS_SRC_DIR}/config/compilers.mk
include ${COSMOSIS_SRC_DIR}/cosmosis/compilers.mk

USER_CFLAGS=$(PEDANTIC_C_FLAGS) -Werror
USER_CXXFLAGS=$(PEDANTIC_C_FLAGS)
Expand Down
4 changes: 2 additions & 2 deletions cosmosis/samplers/Makefile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
include ${COSMOSIS_SRC_DIR}/config/compilers.mk
include ${COSMOSIS_SRC_DIR}/config/subdirs.mk
include ${COSMOSIS_SRC_DIR}/cosmosis/compilers.mk
include ${COSMOSIS_SRC_DIR}/cosmosis/subdirs.mk

# SUBDIRS=multinest

Expand Down
4 changes: 3 additions & 1 deletion cosmosis/samplers/minuit/Makefile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
include ${COSMOSIS_SRC_DIR}/config/compilers.mk
include ${COSMOSIS_SRC_DIR}/cosmosis/compilers.mk

define newline

Expand All @@ -8,9 +8,11 @@ endef


ifeq (${MINUIT2_LIB},)
ifneq (clean,$(MAKECMDGOALS))
$(warning)
$(warning ${newline} ${newline}Not building the minuit sampler as the you need the Minuit2 library ${newline}(And to set the MINUIT2_LIB and MINUIT2_INC environment variables.) ${newline}This is not generally a problem.${newline}${newline})
$(warning)
endif
ALL=
else
ALL=minuit_wrapper.so
Expand Down
4 changes: 2 additions & 2 deletions cosmosis/samplers/multinest/Makefile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
include ${COSMOSIS_SRC_DIR}/config/compilers.mk
include ${COSMOSIS_SRC_DIR}/config/subdirs.mk
include ${COSMOSIS_SRC_DIR}/cosmosis/compilers.mk
include ${COSMOSIS_SRC_DIR}/cosmosis/subdirs.mk

SUBDIRS=multinest_src

2 changes: 1 addition & 1 deletion cosmosis/samplers/multinest/multinest_src/Makefile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
include ../../../../config/compilers.mk
include ../../../../cosmosis/compilers.mk

MPI = $(shell which $(MPIFC) 2> /dev/null)

Expand Down
4 changes: 2 additions & 2 deletions cosmosis/tools/Makefile.template
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
include ${COSMOSIS_SRC_DIR}/config/compilers.mk
include ${COSMOSIS_SRC_DIR}/config/subdirs.mk
include ${COSMOSIS_SRC_DIR}/cosmosis/compilers.mk
include ${COSMOSIS_SRC_DIR}/cosmosis/subdirs.mk

SUBDIRS =
4 changes: 2 additions & 2 deletions example-modules/Makefile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
include ${COSMOSIS_SRC_DIR}/config/compilers.mk
include ${COSMOSIS_SRC_DIR}/config/subdirs.mk
include ${COSMOSIS_SRC_DIR}/cosmosis/compilers.mk
include ${COSMOSIS_SRC_DIR}/cosmosis/subdirs.mk

SUBDIRS = c-module
2 changes: 1 addition & 1 deletion example-modules/c-module/Makefile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
include ${COSMOSIS_SRC_DIR}/config/compilers.mk
include ${COSMOSIS_SRC_DIR}/cosmosis/compilers.mk

all: example_c_module.so

Expand Down
4 changes: 2 additions & 2 deletions modules/Makefile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
include ${COSMOSIS_SRC_DIR}/config/compilers.mk
include ${COSMOSIS_SRC_DIR}/config/subdirs.mk
include ${COSMOSIS_SRC_DIR}/cosmosis/compilers.mk
include ${COSMOSIS_SRC_DIR}/cosmosis/subdirs.mk

SUBDIRS =

Expand Down
29 changes: 27 additions & 2 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -61,17 +61,41 @@
f90_headers = [f[:-4]+".mod" for f in f90_files]

def compile_library():
cosmosis_src_dir = os.getcwd()
os.chdir('cosmosis/datablock/')
try:
os.system("make")
status = os.system("COSMOSIS_ALT_COMPILERS=1 COSMOSIS_SRC_DIR={} make".format(cosmosis_src_dir))
finally:
os.chdir('../../')
if status:
raise RuntimeError("Failed to compile cosmosis core")


def setup_compilers():
try:
cc = os.environ['CC']
fc = os.environ['FC']
cxx = os.environ['CXX']
except KeyError:
sys.stderr.write("For the avoidance of confusion you need to set\n")
sys.stderr.write("These environment variables before installing cosmosis:\n")
sys.stderr.write("CC, FC, CXX for the C compiler, fortran compiler, and C++ compiler.\n\n")
sys.exit(1)
f = open("./cosmosis/compilers.py", "w")
f.write("compilers = '''\n".format(cc))
f.write("export CC={}\n".format(cc))
f.write("export FC={}\n".format(fc))
f.write("export CXX={}\n".format(cxx))
f.write("export COSMOSIS_ALT_COMPILERS=1\n")
f.write("'''\n")
f.close()

setup_compilers()
compile_library()





if __name__ == "__main__":
setup(name = 'cosmosis',
description = "Joe Test",
Expand All @@ -80,5 +104,6 @@ def compile_library():
packages = find_packages(),
include_package_data = True,
scripts = scripts,
install_requires = ['pyyaml', 'future', 'configparser', 'emcee', 'numpy', 'scipy']
)

0 comments on commit ff4fa31

Please sign in to comment.