From 3bb1a461061d9181394f3114004326fef9d86828 Mon Sep 17 00:00:00 2001
From: Bernd Machenschalk <bernd.machenschalk@ligo.org>
Date: Mon, 23 Apr 2018 11:11:06 +0200
Subject: [PATCH] add a target 'install'

- this installs the header in $PREFIX/include/eclfft and the lib in $PREFIX/lib/eclfft.a
---
 Makefile           | 3 +++
 README.md          | 3 +++
 src/Makefile       | 8 +++++++-
 src/Makefile.mingw | 6 ++++++
 4 files changed, 19 insertions(+), 1 deletion(-)

diff --git a/Makefile b/Makefile
index 3030dca..ae776dd 100644
--- a/Makefile
+++ b/Makefile
@@ -19,3 +19,6 @@ win64:
 clean:
 	$(MAKE) -C src clean
 	$(MAKE) -C example clean
+
+install:
+	$(MAKE) -C src install
diff --git a/README.md b/README.md
index 7b89884..355a091 100644
--- a/README.md
+++ b/README.md
@@ -19,8 +19,11 @@ The codebase contains a top-level Makefile that builds the library and the examp
 * macos
 * win32
 * win64
+* install
 * clean
 
+The `install` target uses the `PREFIX` variable, i.e. you should use `PREFIX=/some/path make install` or `make install PREFIX=/some/path`
+
 # Usage
 
 * Library
diff --git a/src/Makefile b/src/Makefile
index bcbb617..f819b13 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -13,6 +13,7 @@ endif
 
 OBJECTS = fft_setup.o fft_execute.o fft_kernelstring.o
 
+PREFIX ?= "."
 
 $(TARGET): $(OBJECTS)
 	$(AR) rcs $(TARGET) $(OBJECTS)
@@ -21,13 +22,18 @@ $(TARGET): $(OBJECTS)
 
 fft_setup.o: fft_setup.cpp fft_internal.h fft_base_kernels.h
 	$(CXX) $(CXXFLAGS) -c fft_setup.cpp
-	
+
 fft_execute.o: fft_execute.cpp ../include/clFFT.h fft_internal.h
 	$(CXX) $(CXXFLAGS) -c fft_execute.cpp
 
 fft_kernelstring.o: fft_kernelstring.cpp ../include/clFFT.h fft_internal.h
 	$(CXX) $(CXXFLAGS) -c fft_kernelstring.cpp
 
+install: $(TARGET) ../include/clFFT.h
+	mkdir -p $(PREFIX)/lib $(PREFIX)/include
+	cp  ../include/clFFT.h $(PREFIX)/include/eclfft.h
+	cp  $(TARGET) $(PREFIX)/lib/libeclfft.a
+
 clean:
 	rm -f *.o
 	rm -f *.a
diff --git a/src/Makefile.mingw b/src/Makefile.mingw
index 216d207..1f7e6e4 100644
--- a/src/Makefile.mingw
+++ b/src/Makefile.mingw
@@ -9,6 +9,7 @@ CXXFLAGS += -O3 -Wall -g -I$(NVIDIA_SDK_INSTALL_PATH)/OpenCL/common/inc -I$(AMDA
 
 OBJECTS = fft_setup.o fft_execute.o fft_kernelstring.o
 
+PREFIX ?= "."
 
 $(TARGET): $(OBJECTS)
 	$(AR) rcs $(TARGET) $(OBJECTS)
@@ -24,6 +25,11 @@ fft_execute.o: fft_execute.cpp ../include/clFFT.h fft_internal.h
 fft_kernelstring.o: fft_kernelstring.cpp ../include/clFFT.h fft_internal.h
 	$(CXX) $(CXXFLAGS) -c fft_kernelstring.cpp
 
+install: $(TARGET) ../include/clFFT.h
+	mkdir -p $(PREFIX)/lib $(PREFIX)/include
+	cp  ../include/clFFT.h $(PREFIX)/include/eclfft.h
+	cp  $(TARGET) $(PREFIX)/lib/libeclfft.a
+
 clean:
 	rm -f *.o
 	rm -f *.a
-- 
GitLab