From db08a08f778c3864e78a5cf17dd8785c3bf3f773 Mon Sep 17 00:00:00 2001
From: Martin Reinecke <martin@mpa-garching.mpg.de>
Date: Thu, 14 Feb 2019 17:28:28 +0100
Subject: [PATCH] revamp include mechanism; update copyright; fix for OSX

---
 Makefile.am                     |  4 ++--
 c_utils/c_utils.c               | 10 +++-------
 c_utils/c_utils.h               |  8 ++------
 c_utils/memusage.c              | 10 +++-------
 c_utils/memusage.h              |  8 ++------
 c_utils/walltime_c.c            | 10 +++-------
 c_utils/walltime_c.h            |  8 ++------
 configure.ac                    |  6 ------
 libsharp/sharp.c                | 20 ++++++++------------
 libsharp/sharp.h                |  6 +-----
 libsharp/sharp_almhelpers.c     | 12 ++++--------
 libsharp/sharp_almhelpers.h     |  8 ++------
 libsharp/sharp_core.c           | 33 ++++++++++++++++++++++++++++++++-
 libsharp/sharp_core_inc.c       | 19 ++++++++++---------
 libsharp/sharp_cxx.h            | 15 ++++-----------
 libsharp/sharp_geomhelpers.c    | 14 +++++---------
 libsharp/sharp_geomhelpers.h    |  8 ++------
 libsharp/sharp_internal.h       | 10 +++-------
 libsharp/sharp_legendre_roots.c |  4 ++--
 libsharp/sharp_legendre_roots.h |  6 +-----
 libsharp/sharp_mpi.c            |  8 ++------
 libsharp/sharp_mpi.h            |  8 ++------
 libsharp/sharp_testsuite.c      | 20 ++++++++------------
 libsharp/sharp_vecsupport.h     |  6 +-----
 libsharp/sharp_ylmgen_c.c       | 10 +++-------
 libsharp/sharp_ylmgen_c.h       |  6 +-----
 pocketfft/LICENSE.md            | 25 +++++++++++++++++++++++++
 pocketfft/pocketfft.c           |  2 +-
 pocketfft/pocketfft.h           |  2 +-
 29 files changed, 135 insertions(+), 171 deletions(-)
 create mode 100644 pocketfft/LICENSE.md

diff --git a/Makefile.am b/Makefile.am
index 0dfc6e1..9345ea5 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -38,7 +38,7 @@ libsharp_la_LIBADD = libavx.la libavx2.la libfma.la libfma4.la libavx512f.la
 
 endif
 
-include_HEADERS = \
+nobase_include_HEADERS = \
   libsharp/sharp.h \
   libsharp/sharp_geomhelpers.h \
   libsharp/sharp_almhelpers.h \
@@ -53,7 +53,7 @@ sharp_testsuite_LDADD = libsharp.la
 
 TESTS = runtest.sh
 
-AM_CFLAGS = -I$(top_srcdir)/c_utils -I$(top_srcdir)/libsharp @AM_CFLAGS@
+AM_CFLAGS = @AM_CFLAGS@
 
 pkgconfigdir = $(libdir)/pkgconfig
 nodist_pkgconfig_DATA = @PACKAGE_NAME@.pc
diff --git a/c_utils/c_utils.c b/c_utils/c_utils.c
index 9344a6d..cf4f409 100644
--- a/c_utils/c_utils.c
+++ b/c_utils/c_utils.c
@@ -16,21 +16,17 @@
  *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  */
 
-/*
- *  libc_utils is being developed at the Max-Planck-Institut fuer Astrophysik
- *  and financially supported by the Deutsches Zentrum fuer Luft- und Raumfahrt
- *  (DLR).
- */
+/* libc_utils is being developed at the Max-Planck-Institut fuer Astrophysik */
 
 /*
  *  Convenience functions
  *
- *  Copyright (C) 2008-2017 Max-Planck-Society
+ *  Copyright (C) 2008-2019 Max-Planck-Society
  *  Author: Martin Reinecke
  */
 
 #include <stdio.h>
-#include "c_utils.h"
+#include "c_utils/c_utils.h"
 
 void util_fail_ (const char *file, int line, const char *func, const char *msg)
   {
diff --git a/c_utils/c_utils.h b/c_utils/c_utils.h
index 01c64ad..5aed9a1 100644
--- a/c_utils/c_utils.h
+++ b/c_utils/c_utils.h
@@ -16,16 +16,12 @@
  *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  */
 
-/*
- *  libc_utils is being developed at the Max-Planck-Institut fuer Astrophysik
- *  and financially supported by the Deutsches Zentrum fuer Luft- und Raumfahrt
- *  (DLR).
- */
+/* libc_utils is being developed at the Max-Planck-Institut fuer Astrophysik */
 
 /*! \file c_utils.h
  *  Convenience functions
  *
- *  Copyright (C) 2008-2017 Max-Planck-Society
+ *  Copyright (C) 2008-2019 Max-Planck-Society
  *  \author Martin Reinecke
  *  \note This file should only be included from .c files, NOT from .h files.
  */
diff --git a/c_utils/memusage.c b/c_utils/memusage.c
index a1c25c0..fd0c331 100644
--- a/c_utils/memusage.c
+++ b/c_utils/memusage.c
@@ -16,22 +16,18 @@
  *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  */
 
-/*
- *  libc_utils is being developed at the Max-Planck-Institut fuer Astrophysik
- *  and financially supported by the Deutsches Zentrum fuer Luft- und Raumfahrt
- *  (DLR).
- */
+/* libc_utils is being developed at the Max-Planck-Institut fuer Astrophysik */
 
 /*
  *  Functionality for measuring memory consumption
  *
- *  Copyright (C) 2012 Max-Planck-Society
+ *  Copyright (C) 2012-2019 Max-Planck-Society
  *  Author: Martin Reinecke
  */
 
 #include <stdio.h>
 #include <string.h>
-#include "memusage.h"
+#include "c_utils/memusage.h"
 
 double residentSetSize(void)
   {
diff --git a/c_utils/memusage.h b/c_utils/memusage.h
index fa0ac43..73c55c3 100644
--- a/c_utils/memusage.h
+++ b/c_utils/memusage.h
@@ -16,16 +16,12 @@
  *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  */
 
-/*
- *  libc_utils is being developed at the Max-Planck-Institut fuer Astrophysik
- *  and financially supported by the Deutsches Zentrum fuer Luft- und Raumfahrt
- *  (DLR).
- */
+/* libc_utils is being developed at the Max-Planck-Institut fuer Astrophysik */
 
 /*! \file memusage.h
  *  Functionality for measuring memory consumption
  *
- *  Copyright (C) 2012 Max-Planck-Society
+ *  Copyright (C) 2012-2019 Max-Planck-Society
  *  \author Martin Reinecke
  */
 
diff --git a/c_utils/walltime_c.c b/c_utils/walltime_c.c
index 8f4ac0c..f6b8a08 100644
--- a/c_utils/walltime_c.c
+++ b/c_utils/walltime_c.c
@@ -16,16 +16,12 @@
  *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  */
 
-/*
- *  libc_utils is being developed at the Max-Planck-Institut fuer Astrophysik
- *  and financially supported by the Deutsches Zentrum fuer Luft- und Raumfahrt
- *  (DLR).
- */
+/* libc_utils is being developed at the Max-Planck-Institut fuer Astrophysik */
 
 /*
  *  Functionality for reading wall clock time
  *
- *  Copyright (C) 2010-2016 Max-Planck-Society
+ *  Copyright (C) 2010-2019 Max-Planck-Society
  *  Author: Martin Reinecke
  */
 
@@ -40,7 +36,7 @@
 #include <stdlib.h>
 #endif
 
-#include "walltime_c.h"
+#include "c_utils/walltime_c.h"
 
 double wallTime(void)
   {
diff --git a/c_utils/walltime_c.h b/c_utils/walltime_c.h
index c291f17..d74dc6c 100644
--- a/c_utils/walltime_c.h
+++ b/c_utils/walltime_c.h
@@ -16,16 +16,12 @@
  *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  */
 
-/*
- *  libc_utils is being developed at the Max-Planck-Institut fuer Astrophysik
- *  and financially supported by the Deutsches Zentrum fuer Luft- und Raumfahrt
- *  (DLR).
- */
+/* libc_utils is being developed at the Max-Planck-Institut fuer Astrophysik */
 
 /*! \file walltime_c.h
  *  Functionality for reading wall clock time
  *
- *  Copyright (C) 2010 Max-Planck-Society
+ *  Copyright (C) 2010-2019 Max-Planck-Society
  *  \author Martin Reinecke
  */
 
diff --git a/configure.ac b/configure.ac
index a619d3f..7f6b5d8 100644
--- a/configure.ac
+++ b/configure.ac
@@ -14,12 +14,6 @@ m4_ifdef([AM_PROG_AR], [AM_PROG_AR])
 LT_INIT
 AC_CONFIG_MACRO_DIR([m4])
 
-dnl
-dnl By default, install the headers into a subdirectory of
-dnl ${prefix}/include to avoid possible header filename collisions.
-dnl
-includedir="${includedir}/${PACKAGE_NAME}"
-
 dnl
 dnl Enable silent build rules if this version of Automake supports them
 dnl
diff --git a/libsharp/sharp.c b/libsharp/sharp.c
index 456b69c..59e4638 100644
--- a/libsharp/sharp.c
+++ b/libsharp/sharp.c
@@ -16,28 +16,24 @@
  *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  */
 
-/*
- *  libsharp is being developed at the Max-Planck-Institut fuer Astrophysik
- *  and financially supported by the Deutsches Zentrum fuer Luft- und Raumfahrt
- *  (DLR).
- */
+/* libsharp is being developed at the Max-Planck-Institut fuer Astrophysik */
 
 /*! \file sharp.c
  *  Spherical transform library
  *
- *  Copyright (C) 2006-2016 Max-Planck-Society
+ *  Copyright (C) 2006-2019 Max-Planck-Society
  *  \author Martin Reinecke \author Dag Sverre Seljebotn
  */
 
 #include <math.h>
 #include <string.h>
 #include "pocketfft/pocketfft.h"
-#include "sharp_ylmgen_c.h"
-#include "sharp_internal.h"
-#include "c_utils.h"
-#include "walltime_c.h"
-#include "sharp_almhelpers.h"
-#include "sharp_geomhelpers.h"
+#include "libsharp/sharp_ylmgen_c.h"
+#include "libsharp/sharp_internal.h"
+#include "c_utils/c_utils.h"
+#include "c_utils/walltime_c.h"
+#include "libsharp/sharp_almhelpers.h"
+#include "libsharp/sharp_geomhelpers.h"
 
 typedef complex double dcmplx;
 typedef complex float  fcmplx;
diff --git a/libsharp/sharp.h b/libsharp/sharp.h
index 0e43ba9..1171372 100644
--- a/libsharp/sharp.h
+++ b/libsharp/sharp.h
@@ -16,11 +16,7 @@
  *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  */
 
-/*
- *  libsharp is being developed at the Max-Planck-Institut fuer Astrophysik
- *  and financially supported by the Deutsches Zentrum fuer Luft- und Raumfahrt
- *  (DLR).
- */
+/* libsharp is being developed at the Max-Planck-Institut fuer Astrophysik */
 
 /*! \file sharp.h
  *  Portable interface for the spherical transform library.
diff --git a/libsharp/sharp_almhelpers.c b/libsharp/sharp_almhelpers.c
index 12ce600..c744b47 100644
--- a/libsharp/sharp_almhelpers.c
+++ b/libsharp/sharp_almhelpers.c
@@ -16,21 +16,17 @@
  *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  */
 
-/*
- *  libsharp is being developed at the Max-Planck-Institut fuer Astrophysik
- *  and financially supported by the Deutsches Zentrum fuer Luft- und Raumfahrt
- *  (DLR).
- */
+/* libsharp is being developed at the Max-Planck-Institut fuer Astrophysik */
 
 /*! \file sharp_almhelpers.c
  *  Spherical transform library
  *
- *  Copyright (C) 2008-2016 Max-Planck-Society
+ *  Copyright (C) 2008-2019 Max-Planck-Society
  *  \author Martin Reinecke
  */
 
-#include "sharp_almhelpers.h"
-#include "c_utils.h"
+#include "libsharp/sharp_almhelpers.h"
+#include "c_utils/c_utils.h"
 
 void sharp_make_triangular_alm_info (int lmax, int mmax, int stride,
   sharp_alm_info **alm_info)
diff --git a/libsharp/sharp_almhelpers.h b/libsharp/sharp_almhelpers.h
index 06bee8f..1d40d01 100644
--- a/libsharp/sharp_almhelpers.h
+++ b/libsharp/sharp_almhelpers.h
@@ -16,11 +16,7 @@
  *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  */
 
-/*
- *  libsharp is being developed at the Max-Planck-Institut fuer Astrophysik
- *  and financially supported by the Deutsches Zentrum fuer Luft- und Raumfahrt
- *  (DLR).
- */
+/* libsharp is being developed at the Max-Planck-Institut fuer Astrophysik */
 
 /*! \file sharp_almhelpers.h
  *  SHARP helper function for the creation of a_lm data structures
@@ -32,7 +28,7 @@
 #ifndef PLANCK_SHARP_ALMHELPERS_H
 #define PLANCK_SHARP_ALMHELPERS_H
 
-#include "sharp.h"
+#include "libsharp/sharp.h"
 
 #ifdef __cplusplus
 extern "C" {
diff --git a/libsharp/sharp_core.c b/libsharp/sharp_core.c
index f54a058..2c78f2b 100644
--- a/libsharp/sharp_core.c
+++ b/libsharp/sharp_core.c
@@ -1,6 +1,33 @@
+/*
+ *  This file is part of libsharp.
+ *
+ *  libsharp is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  libsharp is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with libsharp; if not, write to the Free Software
+ *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ */
+
+/* libsharp is being developed at the Max-Planck-Institut fuer Astrophysik */
+
+/*! \file sharp_core.c
+ *  Spherical transform library
+ *
+ *  Copyright (C) 2019 Max-Planck-Society
+ *  \author Martin Reinecke
+ */
+
 #define ARCH default
 #define GENERIC_ARCH
-#include "sharp_core_inc.c"
+#include "libsharp/sharp_core_inc.c"
 #undef GENERIC_ARCH
 #undef ARCH
 
@@ -42,7 +69,9 @@ int XCONCATX2(sharp_veclen,arch) (void); \
 int XCONCATX2(sharp_max_nvec,arch) (int spin); \
 const char *XCONCATX2(sharp_architecture,arch) (void);
 
+#if (!defined(__APPLE__))
 DECL(avx512f)
+#endif
 DECL(fma4)
 DECL(fma)
 DECL(avx2)
@@ -62,7 +91,9 @@ static void assign_funcs(void)
     architecture_ = XCONCATX2(sharp_architecture,arch); \
     return; \
     }
+#if (!defined(__APPLE__))
 DECL2(avx512f)
+#endif
 DECL2(fma4)
 DECL2(fma)
 DECL2(avx2)
diff --git a/libsharp/sharp_core_inc.c b/libsharp/sharp_core_inc.c
index b875877..331f8f7 100644
--- a/libsharp/sharp_core_inc.c
+++ b/libsharp/sharp_core_inc.c
@@ -16,11 +16,7 @@
  *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  */
 
-/*
- *  libsharp is being developed at the Max-Planck-Institut fuer Astrophysik
- *  and financially supported by the Deutsches Zentrum fuer Luft- und Raumfahrt
- *  (DLR).
- */
+/* libsharp is being developed at the Max-Planck-Institut fuer Astrophysik */
 
 /*! \file sharp_core_inc.c
  *  Computational core
@@ -29,6 +25,9 @@
  *  \author Martin Reinecke
  */
 
+// FIXME: special ugly workaround for problems on OSX
+#if (!defined(__APPLE__)) || (!defined(__AVX512F__))
+
 #if (defined(MULTIARCH) || defined(GENERIC_ARCH))
 
 #define XCONCATX(a,b) a##_##b
@@ -38,10 +37,10 @@
 #include <complex.h>
 #include <math.h>
 #include <string.h>
-#include "sharp_vecsupport.h"
-#include "sharp.h"
-#include "sharp_internal.h"
-#include "c_utils.h"
+#include "libsharp/sharp_vecsupport.h"
+#include "libsharp/sharp.h"
+#include "libsharp/sharp_internal.h"
+#include "c_utils/c_utils.h"
 
 typedef complex double dcmplx;
 
@@ -1205,3 +1204,5 @@ const char *XARCH(sharp_architecture)(void)
   }
 
 #endif
+
+#endif
diff --git a/libsharp/sharp_cxx.h b/libsharp/sharp_cxx.h
index b2415e0..e37d491 100644
--- a/libsharp/sharp_cxx.h
+++ b/libsharp/sharp_cxx.h
@@ -16,11 +16,7 @@
  *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  */
 
-/*
- *  libsharp is being developed at the Max-Planck-Institut fuer Astrophysik
- *  and financially supported by the Deutsches Zentrum fuer Luft- und Raumfahrt
- *  (DLR).
- */
+/* libsharp is being developed at the Max-Planck-Institut fuer Astrophysik */
 
 /*! \file sharp_cxx.h
  *  Spherical transform library
@@ -33,9 +29,9 @@
 #define PLANCK_SHARP_CXX_H
 
 #include <complex>
-#include "sharp.h"
-#include "sharp_geomhelpers.h"
-#include "sharp_almhelpers.h"
+#include "libsharp/sharp.h"
+#include "libsharp/sharp_geomhelpers.h"
+#include "libsharp/sharp_almhelpers.h"
 
 class sharp_base
   {
@@ -89,9 +85,6 @@ class sharp_base
       if (ainfo) sharp_destroy_alm_info(ainfo);
       sharp_make_triangular_alm_info (lmax, mmax, 1, &ainfo);
       }
-
-    const sharp_geom_info* get_geom_info() const { return ginfo; }
-    const sharp_alm_info* get_alm_info() const { return ainfo; }
   };
 
 template<typename T> struct cxxjobhelper__ {};
diff --git a/libsharp/sharp_geomhelpers.c b/libsharp/sharp_geomhelpers.c
index 0f6af39..8a7030b 100644
--- a/libsharp/sharp_geomhelpers.c
+++ b/libsharp/sharp_geomhelpers.c
@@ -16,23 +16,19 @@
  *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  */
 
-/*
- *  libsharp is being developed at the Max-Planck-Institut fuer Astrophysik
- *  and financially supported by the Deutsches Zentrum fuer Luft- und Raumfahrt
- *  (DLR).
- */
+/* libsharp is being developed at the Max-Planck-Institut fuer Astrophysik */
 
 /*! \file sharp_geomhelpers.c
  *  Spherical transform library
  *
- *  Copyright (C) 2006-2018 Max-Planck-Society
+ *  Copyright (C) 2006-2019 Max-Planck-Society
  *  \author Martin Reinecke
  */
 
 #include <math.h>
-#include "sharp_geomhelpers.h"
-#include "sharp_legendre_roots.h"
-#include "c_utils.h"
+#include "libsharp/sharp_geomhelpers.h"
+#include "libsharp/sharp_legendre_roots.h"
+#include "c_utils/c_utils.h"
 #include "pocketfft/pocketfft.h"
 
 void sharp_make_subset_healpix_geom_info (int nside, int stride, int nrings,
diff --git a/libsharp/sharp_geomhelpers.h b/libsharp/sharp_geomhelpers.h
index a59af9b..27b1246 100644
--- a/libsharp/sharp_geomhelpers.h
+++ b/libsharp/sharp_geomhelpers.h
@@ -16,11 +16,7 @@
  *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  */
 
-/*
- *  libsharp is being developed at the Max-Planck-Institut fuer Astrophysik
- *  and financially supported by the Deutsches Zentrum fuer Luft- und Raumfahrt
- *  (DLR).
- */
+/* libsharp is being developed at the Max-Planck-Institut fuer Astrophysik */
 
 /*! \file sharp_geomhelpers.h
  *  SHARP helper function for the creation of grid geometries
@@ -32,7 +28,7 @@
 #ifndef PLANCK_SHARP_GEOMHELPERS_H
 #define PLANCK_SHARP_GEOMHELPERS_H
 
-#include "sharp.h"
+#include "libsharp/sharp.h"
 
 #ifdef __cplusplus
 extern "C" {
diff --git a/libsharp/sharp_internal.h b/libsharp/sharp_internal.h
index 979ae58..78ff666 100644
--- a/libsharp/sharp_internal.h
+++ b/libsharp/sharp_internal.h
@@ -16,11 +16,7 @@
  *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  */
 
-/*
- *  libsharp is being developed at the Max-Planck-Institut fuer Astrophysik
- *  and financially supported by the Deutsches Zentrum fuer Luft- und Raumfahrt
- *  (DLR).
- */
+/* libsharp is being developed at the Max-Planck-Institut fuer Astrophysik */
 
 /*! \file sharp_internal.h
  *  Internally used functionality for the spherical transform library.
@@ -37,8 +33,8 @@
 #endif
 
 #include <complex.h>
-#include "sharp.h"
-#include "sharp_ylmgen_c.h"
+#include "libsharp/sharp.h"
+#include "libsharp/sharp_ylmgen_c.h"
 
 typedef struct
   {
diff --git a/libsharp/sharp_legendre_roots.c b/libsharp/sharp_legendre_roots.c
index 44d8507..ec81ecb 100644
--- a/libsharp/sharp_legendre_roots.c
+++ b/libsharp/sharp_legendre_roots.c
@@ -7,8 +7,8 @@
     - tweaked Newton iteration to obtain higher accuracy */
 
 #include <math.h>
-#include "sharp_legendre_roots.h"
-#include "c_utils.h"
+#include "libsharp/sharp_legendre_roots.h"
+#include "c_utils/c_utils.h"
 
 static inline double one_minus_x2 (double x)
   { return (fabs(x)>0.1) ? (1.+x)*(1.-x) : 1.-x*x; }
diff --git a/libsharp/sharp_legendre_roots.h b/libsharp/sharp_legendre_roots.h
index 19f8ec8..4220fce 100644
--- a/libsharp/sharp_legendre_roots.h
+++ b/libsharp/sharp_legendre_roots.h
@@ -16,11 +16,7 @@
  *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  */
 
-/*
- *  libsharp is being developed at the Max-Planck-Institut fuer Astrophysik
- *  and financially supported by the Deutsches Zentrum fuer Luft- und Raumfahrt
- *  (DLR).
- */
+/* libsharp is being developed at the Max-Planck-Institut fuer Astrophysik */
 
 /*! \file sharp_legendre_roots.h
  *
diff --git a/libsharp/sharp_mpi.c b/libsharp/sharp_mpi.c
index a90ec69..ed3063a 100644
--- a/libsharp/sharp_mpi.c
+++ b/libsharp/sharp_mpi.c
@@ -16,11 +16,7 @@
  *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  */
 
-/*
- *  libsharp is being developed at the Max-Planck-Institut fuer Astrophysik
- *  and financially supported by the Deutsches Zentrum fuer Luft- und Raumfahrt
- *  (DLR).
- */
+/* libsharp is being developed at the Max-Planck-Institut fuer Astrophysik */
 
 /*! \file sharp_mpi.c
  *  Functionality only needed for MPI-parallel transforms
@@ -31,7 +27,7 @@
 
 #ifdef USE_MPI
 
-#include "sharp_mpi.h"
+#include "libsharp/sharp_mpi.h"
 
 typedef struct
   {
diff --git a/libsharp/sharp_mpi.h b/libsharp/sharp_mpi.h
index 5de37bf..bb26ff0 100644
--- a/libsharp/sharp_mpi.h
+++ b/libsharp/sharp_mpi.h
@@ -16,11 +16,7 @@
  *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  */
 
-/*
- *  libsharp is being developed at the Max-Planck-Institut fuer Astrophysik
- *  and financially supported by the Deutsches Zentrum fuer Luft- und Raumfahrt
- *  (DLR).
- */
+/* libsharp is being developed at the Max-Planck-Institut fuer Astrophysik */
 
 /*! \file sharp_mpi.h
  *  Interface for the spherical transform library with MPI support.
@@ -33,7 +29,7 @@
 #define PLANCK_SHARP_MPI_H
 
 #include <mpi.h>
-#include "sharp.h"
+#include "libsharp/sharp.h"
 
 #ifdef __cplusplus
 extern "C" {
diff --git a/libsharp/sharp_testsuite.c b/libsharp/sharp_testsuite.c
index f22a91e..4392a61 100644
--- a/libsharp/sharp_testsuite.c
+++ b/libsharp/sharp_testsuite.c
@@ -16,11 +16,7 @@
  *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  */
 
-/*
- *  libsharp is being developed at the Max-Planck-Institut fuer Astrophysik
- *  and financially supported by the Deutsches Zentrum fuer Luft- und Raumfahrt
- *  (DLR).
- */
+/* libsharp is being developed at the Max-Planck-Institut fuer Astrophysik */
 
 /*  \file sharp_testsuite.c
  *
@@ -32,17 +28,17 @@
 #include <string.h>
 #ifdef USE_MPI
 #include "mpi.h"
-#include "sharp_mpi.h"
+#include "libsharp/sharp_mpi.h"
 #endif
 #ifdef _OPENMP
 #include <omp.h>
 #endif
-#include "sharp.h"
-#include "sharp_internal.h"
-#include "sharp_geomhelpers.h"
-#include "sharp_almhelpers.h"
-#include "c_utils.h"
-#include "memusage.h"
+#include "libsharp/sharp.h"
+#include "libsharp/sharp_internal.h"
+#include "libsharp/sharp_geomhelpers.h"
+#include "libsharp/sharp_almhelpers.h"
+#include "c_utils/c_utils.h"
+#include "c_utils/memusage.h"
 
 static void OpenMP_status(void)
   {
diff --git a/libsharp/sharp_vecsupport.h b/libsharp/sharp_vecsupport.h
index e4bfc4f..7894ef6 100644
--- a/libsharp/sharp_vecsupport.h
+++ b/libsharp/sharp_vecsupport.h
@@ -16,11 +16,7 @@
  *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  */
 
-/*
- *  libsharp is being developed at the Max-Planck-Institut fuer Astrophysik
- *  and financially supported by the Deutsches Zentrum fuer Luft- und Raumfahrt
- *  (DLR).
- */
+/* libsharp is being developed at the Max-Planck-Institut fuer Astrophysik */
 
 /*  \file sharp_vecsupport.h
  *  Convenience functions for vector arithmetics
diff --git a/libsharp/sharp_ylmgen_c.c b/libsharp/sharp_ylmgen_c.c
index f408eea..35f3397 100644
--- a/libsharp/sharp_ylmgen_c.c
+++ b/libsharp/sharp_ylmgen_c.c
@@ -16,11 +16,7 @@
  *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  */
 
-/*
- *  libsharp is being developed at the Max-Planck-Institut fuer Astrophysik
- *  and financially supported by the Deutsches Zentrum fuer Luft- und Raumfahrt
- *  (DLR).
- */
+/* libsharp is being developed at the Max-Planck-Institut fuer Astrophysik */
 
 /*
  *  Helper code for efficient calculation of Y_lm(theta,phi=0)
@@ -31,8 +27,8 @@
 
 #include <math.h>
 #include <stdlib.h>
-#include "sharp_ylmgen_c.h"
-#include "c_utils.h"
+#include "libsharp/sharp_ylmgen_c.h"
+#include "c_utils/c_utils.h"
 
 static inline void normalize (double *val, int *scale, double xfmax)
   {
diff --git a/libsharp/sharp_ylmgen_c.h b/libsharp/sharp_ylmgen_c.h
index 130d797..1fa1cfa 100644
--- a/libsharp/sharp_ylmgen_c.h
+++ b/libsharp/sharp_ylmgen_c.h
@@ -16,11 +16,7 @@
  *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  */
 
-/*
- *  libsharp is being developed at the Max-Planck-Institut fuer Astrophysik
- *  and financially supported by the Deutsches Zentrum fuer Luft- und Raumfahrt
- *  (DLR).
- */
+/* libsharp is being developed at the Max-Planck-Institut fuer Astrophysik */
 
 /*! \file sharp_ylmgen_c.h
  *  Code for efficient calculation of Y_lm(phi=0,theta)
diff --git a/pocketfft/LICENSE.md b/pocketfft/LICENSE.md
new file mode 100644
index 0000000..c6d4a9f
--- /dev/null
+++ b/pocketfft/LICENSE.md
@@ -0,0 +1,25 @@
+Copyright (C) 2010-2019 Max-Planck-Society
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+  list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright notice, this
+  list of conditions and the following disclaimer in the documentation and/or
+  other materials provided with the distribution.
+* Neither the name of the Astropy Team nor the names of its contributors may be
+  used to endorse or promote products derived from this software without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/pocketfft/pocketfft.c b/pocketfft/pocketfft.c
index de1af3e..f7771c9 100644
--- a/pocketfft/pocketfft.c
+++ b/pocketfft/pocketfft.c
@@ -6,7 +6,7 @@
 /*
  *  Main implementation file.
  *
- *  Copyright (C) 2004-2018 Max-Planck-Society
+ *  Copyright (C) 2004-2019 Max-Planck-Society
  *  \author Martin Reinecke
  */
 
diff --git a/pocketfft/pocketfft.h b/pocketfft/pocketfft.h
index 9eb3985..af86eba 100644
--- a/pocketfft/pocketfft.h
+++ b/pocketfft/pocketfft.h
@@ -6,7 +6,7 @@
 /*! \file pocketfft.h
  *  Public interface of the pocketfft library
  *
- *  Copyright (C) 2008-2018 Max-Planck-Society
+ *  Copyright (C) 2008-2019 Max-Planck-Society
  *  \author Martin Reinecke
  */
 
-- 
GitLab