From 8a7654b008891f5c741822c56c8eeda52b1c0fbb Mon Sep 17 00:00:00 2001
From: Aaron LI <aaronly.me@gmail.com>
Date: Wed, 8 Jun 2016 01:14:16 +0800
Subject: Rewrite Makefile; also remove obsolete files

---
 mass_profile/Makefile        | 184 ++++++++++++++++++++++++++++++++-----------
 mass_profile/init.sh         |   6 --
 mass_profile/pgplot_path.txt |   2 -
 3 files changed, 136 insertions(+), 56 deletions(-)
 delete mode 100755 mass_profile/init.sh
 delete mode 100644 mass_profile/pgplot_path.txt

(limited to 'mass_profile')

diff --git a/mass_profile/Makefile b/mass_profile/Makefile
index 21972a3..4a5ad9c 100644
--- a/mass_profile/Makefile
+++ b/mass_profile/Makefile
@@ -1,57 +1,145 @@
-targets=fit_nfw_sbp fit_dbeta_sbp fit_beta_sbp fit_direct_beta calc_distance fit_wang2012_model fit_nfw_mass calc_lx fit_mt_pl fit_lt_pl fit_mt_bpl fit_lt_bpl cooling_time calc_lx_dbeta calc_lx_beta
-target:$(targets) py
+#
+# Makefile for `mass_profile` tools
+#
+# Junhua GU
+# Weitian LI
+# 2016-06-07
+#
+
+
+CXX ?= g++
+#CXXFLAGS += -Wall -Werror
+CXXFLAGS += -Wall
+
+ifdef DEBUG
+	CXXFLAGS += -g
+else
+	CXXFLAGS += -O2
+endif
+
+OPT_UTIL_INC ?= -I../opt_utilities
+PGPLOT_INC= -I$(HEADAS)/include
+PGPLOT_LIB= -L. -lcpgplot -lpgplot -lX11 -lgfortran
+
+TARGETS= fit_nfw_sbp fit_dbeta_sbp fit_beta_sbp \
+		fit_direct_beta calc_distance fit_wang2012_model \
+		fit_nfw_mass calc_lx fit_mt_pl fit_lt_pl fit_mt_bpl \
+		fit_lt_bpl cooling_time calc_lx_dbeta calc_lx_beta
+HEADERS= projector.hpp spline.h vchisq.hpp
+
+all: pgplot $(TARGETS)
+
+pgplot: libcpgplot.a libpgplot.a
+
+libcpgplot.a:
+ifdef HEADAS
+	ln -sv $(HEADAS)/lib/libcpgplot*.a ./$@
+else
+	$(error HEASoft not initialized)
+endif
+
+libpgplot.a:
+ifdef HEADAS
+	ln -sv $(HEADAS)/lib/libpgplot*.a  ./$@
+else
+	$(error HEASoft not initialized)
+endif
+
+# NOTE:
+# Since we link against the static `libcpgplot.a` and `libpgplot.a` here,
+# we cannot separate the compilation and linkage stages, otherwise, the
+# linkage will failed with undefined reference errors.
+fit_nfw_sbp: fit_nfw_sbp.cpp nfw_ne.hpp $(HEADERS) plot_reporter.cpp plot_reporter.hpp
+	$(CXX) $(CXXFLAGS) $^ -o $@ $(OPT_UTIL_INC) $(PGPLOT_INC) $(PGPLOT_LIB)
+
+fit_dbeta_sbp: beta_cfg.o report_error.o fit_dbeta_sbp.cpp constrained_dbeta.hpp $(HEADERS) plot_reporter.cpp plot_reporter.hpp
+	$(CXX) $(CXXFLAGS) $^ -o $@ $(OPT_UTIL_INC) $(PGPLOT_INC) $(PGPLOT_LIB)
+
+fit_beta_sbp: beta_cfg.o dump_fit_qdp.o fit_beta_sbp.cpp beta.hpp $(HEADERS) plot_reporter.cpp plot_reporter.hpp
+	$(CXX) $(CXXFLAGS) $^ -o $@ $(OPT_UTIL_INC) $(PGPLOT_INC) $(PGPLOT_LIB)
+
+fit_wang2012_model: fit_wang2012_model.cpp wang2012_model.hpp chisq.hpp plot_reporter.cpp plot_reporter.hpp
+	$(CXX) $(CXXFLAGS) $^ -o $@ $(OPT_UTIL_INC) $(PGPLOT_INC) $(PGPLOT_LIB)
+
+fit_nfw_mass: fit_nfw_mass.cpp nfw.hpp chisq.hpp plot_reporter.cpp plot_reporter.hpp
+	$(CXX) $(CXXFLAGS) $^ -o $@ $(OPT_UTIL_INC) $(PGPLOT_INC) $(PGPLOT_LIB)
+
+fit_direct_beta: fit_direct_beta.o plot_reporter.cpp plot_reporter.hpp
+	$(CXX) $(CXXFLAGS) $^ -o $@ $(OPT_UTIL_INC) $(PGPLOT_INC) $(PGPLOT_LIB)
+
+calc_lx: calc_lx.o calc_distance.o plot_reporter.cpp plot_reporter.hpp
+	$(CXX) $(CXXFLAGS) $^ -o $@ $(OPT_UTIL_INC) $(PGPLOT_INC) $(PGPLOT_LIB)
+
+calc_lx_dbeta: beta_cfg.o report_error.o calc_lx_dbeta.cpp constrained_dbeta.hpp $(HEADERS) plot_reporter.cpp plot_reporter.hpp
+	$(CXX) $(CXXFLAGS) $^ -o $@ $(OPT_UTIL_INC) $(PGPLOT_INC) $(PGPLOT_LIB)
+
+calc_lx_beta: beta_cfg.o dump_fit_qdp.o calc_lx_beta.cpp beta.hpp $(HEADERS) plot_reporter.cpp plot_reporter.hpp
+	$(CXX) $(CXXFLAGS) $^ -o $@ $(OPT_UTIL_INC) $(PGPLOT_INC) $(PGPLOT_LIB)
+
+calc_distance: calc_distance_main.o calc_distance.o
+	$(CXX) $(CXXFLAGS) -o $@ $^
+
+fit_mt_pl: fit_mt_pl.cpp
+	$(CXX) $(CXXFLAGS) $< -o $@ $(OPT_UTIL_INC)
+
+fit_lt_pl: fit_lt_pl.cpp
+	$(CXX) $(CXXFLAGS) $< -o $@ $(OPT_UTIL_INC)
+
+fit_mt_bpl: fit_mt_bpl.cpp
+	$(CXX) $(CXXFLAGS) $< -o $@ $(OPT_UTIL_INC)
+
+fit_lt_bpl: fit_lt_bpl.cpp
+	$(CXX) $(CXXFLAGS) $< -o $@ $(OPT_UTIL_INC)
+
+cooling_time: cooling_time.cpp
+	$(CXX) $(CXXFLAGS) -o $@ $<
+
+
+#fit_nfw_sbp.o: fit_nfw_sbp.cpp nfw_ne.hpp $(HEADERS)
+#	$(CXX) $(CXXFLAGS) -c $< $(OPT_UTIL_INC) $(PGPLOT_INC)
+#
+#fit_dbeta_sbp.o: fit_dbeta_sbp.cpp constrained_dbeta.hpp $(HEADERS)
+#	$(CXX) $(CXXFLAGS) -c $< $(OPT_UTIL_INC) $(PGPLOT_INC)
+#
+#fit_beta_sbp.o: fit_beta_sbp.cpp beta.hpp $(HEADERS)
+#	$(CXX) $(CXXFLAGS) -c $< $(OPT_UTIL_INC) $(PGPLOT_INC)
+#
+#fit_wang2012_model.o: fit_wang2012_model.cpp wang2012_model.hpp chisq.hpp
+#	$(CXX) $(CXXFLAGS) -c $< $(OPT_UTIL_INC) $(PGPLOT_INC)
+#
+#fit_nfw_mass.o: fit_nfw_mass.cpp nfw.hpp chisq.hpp
+#	$(CXX) $(CXXFLAGS) -c $< $(OPT_UTIL_INC) $(PGPLOT_INC)
+#
+#calc_lx_dbeta.o: calc_lx_dbeta.cpp constrained_dbeta.hpp $(HEADERS)
+#	$(CXX) $(CXXFLAGS) -c $< $(OPT_UTIL_INC) $(PGPLOT_INC)
+#
+#calc_lx_beta.o: calc_lx_beta.cpp beta.hpp $(HEADERS)
+#	$(CXX) $(CXXFLAGS) -c $< $(OPT_UTIL_INC) $(PGPLOT_INC)
+#
+#plot_reporter.o: plot_reporter.cpp plot_reporter.hpp
+#	$(CXX) $(CXXFLAGS) $(PGPLOT_INC) -c $<
 
-LIB_PGPLOT_PATH="`ls`"
-LIB_PGPLOT=plot_reporter.cpp -lcpgplot -lpgplot -lX11 -lgfortran
+beta_cfg.o: beta_cfg.cpp beta_cfg.hpp
+	$(CXX) $(CXXFLAGS) -c $<
 
-py:
-	chmod a+x *.py
+report_error.o: report_error.cpp report_error.hpp
+	$(CXX) $(CXXFLAGS) -c $<
 
-fit_nfw_sbp:fit_nfw_sbp.cpp nfw_ne.hpp projector.hpp spline.h vchisq.hpp plot_reporter.hpp plot_reporter.cpp
-	g++ $< -o $@ -I ../opt_utilities -O3 `if [ -e pgplot_path.txt ]; then grep LIB pgplot_path.txt|awk '{print "-L" $$2}'; fi` `if [ -e pgplot_path.txt ]; then grep INC pgplot_path.txt|awk '{print "-I" $$2}'; fi` $(LIB_PGPLOT)
+dump_fit_qdp.o: dump_fit_qdp.cpp dump_fit_qdp.hpp
+	$(CXX) $(CXXFLAGS) -c $< $(OPT_UTIL_INC)
 
-fit_dbeta_sbp:fit_dbeta_sbp.cpp beta_cfg.cpp beta_cfg.hpp constrained_dbeta.hpp projector.hpp spline.h vchisq.hpp plot_reporter.hpp plot_reporter.cpp report_error.hpp report_error.cpp
-	g++ -o $@ $< report_error.cpp beta_cfg.cpp -I ../opt_utilities -O3 `if [ -e pgplot_path.txt ]; then grep LIB pgplot_path.txt|awk '{print "-L" $$2}'; fi` `if [ -e pgplot_path.txt ]; then grep INC pgplot_path.txt|awk '{print "-I" $$2}'; fi` $(LIB_PGPLOT)
+calc_distance.o: calc_distance.cc calc_distance.h adapt_trapezoid.h
+	$(CXX) $(CXXFLAGS) -c $<
 
-fit_beta_sbp:fit_beta_sbp.cpp beta_cfg.cpp beta_cfg.hpp beta.hpp projector.hpp spline.h vchisq.hpp plot_reporter.hpp plot_reporter.cpp dump_fit_qdp.cpp dump_fit_qdp.hpp
-	g++ -o $@ $< dump_fit_qdp.cpp beta_cfg.cpp report_error.cpp -I ../opt_utilities -O3 `if [ -e pgplot_path.txt ]; then grep LIB pgplot_path.txt|awk '{print "-L" $$2}'; fi` `if [ -e pgplot_path.txt ]; then grep INC pgplot_path.txt|awk '{print "-I" $$2}'; fi` $(LIB_PGPLOT)
+%.o: %.cc
+	$(CXX) $(CXXFLAGS) -c $< $(OPT_UTIL_INC)
 
-fit_wang2012_model:fit_wang2012_model.cpp wang2012_model.hpp chisq.hpp plot_reporter.hpp plot_reporter.cpp
-	g++ $< -o $@ -I ../opt_utilities -O3 `if [ -e pgplot_path.txt ]; then grep LIB pgplot_path.txt|awk '{print "-L" $$2}'; fi` `if [ -e pgplot_path.txt ]; then grep INC pgplot_path.txt|awk '{print "-I" $$2}'; fi` $(LIB_PGPLOT)
+%.o: %.cpp
+	$(CXX) $(CXXFLAGS) -c $< $(OPT_UTIL_INC)
 
-fit_nfw_mass:fit_nfw_mass.cpp nfw.hpp chisq.hpp plot_reporter.hpp plot_reporter.cpp
-	g++ $< -o $@ -I ../opt_utilities -O3 `if [ -e pgplot_path.txt ]; then grep LIB pgplot_path.txt|awk '{print "-L" $$2}'; fi` `if [ -e pgplot_path.txt ]; then grep INC pgplot_path.txt|awk '{print "-I" $$2}'; fi` $(LIB_PGPLOT)
-
-
-fit_direct_beta:fit_direct_beta.cpp plot_reporter.hpp plot_reporter.cpp
-	g++ $< -o $@ -I ../opt_utilities -O3 `if [ -e pgplot_path.txt ]; then grep LIB pgplot_path.txt|awk '{print "-L" $$2}'; fi` `if [ -e pgplot_path.txt ]; then grep INC pgplot_path.txt|awk '{print "-I" $$2}'; fi` $(LIB_PGPLOT)
-
-calc_lx:calc_lx.cpp plot_reporter.hpp plot_reporter.cpp calc_distance.h calc_distance.cc
-	g++ -o $@ $< calc_distance.cc -I ../opt_utilities -O3 `if [ -e pgplot_path.txt ]; then grep LIB pgplot_path.txt|awk '{print "-L" $$2}'; fi` `if [ -e pgplot_path.txt ]; then grep INC pgplot_path.txt|awk '{print "-I" $$2}'; fi` $(LIB_PGPLOT)
-
-calc_lx_dbeta:calc_lx_dbeta.cpp beta_cfg.cpp beta_cfg.hpp constrained_dbeta.hpp projector.hpp spline.h vchisq.hpp plot_reporter.hpp plot_reporter.cpp report_error.hpp report_error.cpp
-	g++ -o $@ $< report_error.cpp beta_cfg.cpp -I ../opt_utilities -O3 `if [ -e pgplot_path.txt ]; then grep LIB pgplot_path.txt|awk '{print "-L" $$2}'; fi` `if [ -e pgplot_path.txt ]; then grep INC pgplot_path.txt|awk '{print "-I" $$2}'; fi` $(LIB_PGPLOT)
-
-calc_lx_beta:calc_lx_beta.cpp beta_cfg.cpp beta_cfg.hpp beta.hpp projector.hpp spline.h vchisq.hpp plot_reporter.hpp plot_reporter.cpp dump_fit_qdp.cpp dump_fit_qdp.hpp
-	g++ -o $@ $< dump_fit_qdp.cpp beta_cfg.cpp report_error.cpp -I ../opt_utilities -O3 `if [ -e pgplot_path.txt ]; then grep LIB pgplot_path.txt|awk '{print "-L" $$2}'; fi` `if [ -e pgplot_path.txt ]; then grep INC pgplot_path.txt|awk '{print "-I" $$2}'; fi` $(LIB_PGPLOT)
-
-calc_distance:call_calc_distance.cc calc_distance.cc calc_distance.h adapt_trapezoid.h
-	g++ call_calc_distance.cc calc_distance.cc -o $@ -O3
-
-fit_mt_pl:fit_mt_pl.cpp
-	g++ $< -o $@ -O3 -I ../opt_utilities
-
-fit_lt_pl:fit_lt_pl.cpp
-	g++ $< -o $@ -O3 -I ../opt_utilities
-
-fit_mt_bpl:fit_mt_bpl.cpp
-	g++ $< -o $@ -O3 -I ../opt_utilities
-
-fit_lt_bpl:fit_lt_bpl.cpp
-	g++ $< -o $@ -O3 -I ../opt_utilities
-
-cooling_time:cooling_time.cpp
-	g++ $< -o $@ -O3
 
 clean:
-	rm -f $(targets)
+	rm -f *.o $(TARGETS)
+
+cleanall: clean
+	rm -f libpgplot.a libcpgplot.a
diff --git a/mass_profile/init.sh b/mass_profile/init.sh
deleted file mode 100755
index 0bcdd66..0000000
--- a/mass_profile/init.sh
+++ /dev/null
@@ -1,6 +0,0 @@
-ln -sf $XANBIN/lib/libcpgplot*.a ./libcpgplot.a
-ln -sf $XANBIN/lib/libpgplot*.a ./libpgplot.a
-echo LIB ./ >pgplot_path.txt
-echo INC $XANBIN/include >>pgplot_path.txt
-
-chmod a+x *.py
diff --git a/mass_profile/pgplot_path.txt b/mass_profile/pgplot_path.txt
deleted file mode 100644
index 70726e3..0000000
--- a/mass_profile/pgplot_path.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-LIB ./
-INC /usr/local/heasoft/x86_64-unknown-linux-gnu/include
-- 
cgit v1.2.2