まだ MacPorts 使ってるの?とか言われてしまったので, Homebrew へ.主に何に使ってたかと言うと, JAGURS なので,まずは JAGURS がコンパイル出来るように整備してみた.
が,Makefile のバージョン管理に RCS 使ってたので,先ずは,
% brew intall rcs
それ以前としては, /usr/local に入っている HPC compiler を上書きさせないために, /opt/homebrew をインストール先にした.参考にした記事はこちら.
cd /opt
sudo mkdir homebrew
sudo chown ${USER}:staff homebrew
curl -L https://github.com/Homebrew/brew/tarball/master | tar xz --strip 1 -C homebrew
依存ライブラリのインストール
% brew install netcdf
% brew install proj
% brew install fftw
(伴って gcc のインストールも始まっていて重い・・・)
Makefile:
PROJ4_DIR=/opt/homebrew
FFTW3_INCLUDE_DIR=/opt/homebrew/include
NETCDF=/opt/homebrew
% make
In file included from mapproject.c:4:
/opt/homebrew/include/proj_api.h:37:2: error: #error 'To use the proj_api.h you must define the macro ACCEPT_USE_OF_DEPRECATED_PROJ_API_H'
#error 'To use the proj_api.h you must define the macro ACCEPT_USE_OF_DEPRECATED_PROJ_API_H'
^~~~~
mapproject.c で,proj_api.h を include する前に, ACCEPT_USE_OF_DEPRECATED_PROJ_API_H を定義してあげると, make が通るようになります.
% cat mapproject.patch
*** mapproject.c 2019/12/11 20:49:39 1.1
--- mapproject.c 2019/12/11 20:51:04
***************
*** 1,6 ****
--- 1,7 ----
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
+ #define ACCEPT_USE_OF_DEPRECATED_PROJ_API_H
#include <proj_api.h>
static projPJ pj_tmerc, pj_latlong;
もしくは,proj をバージョン5にするという解決策もあるようですが,,,悩みどころ.
参考までに,GitHub上のOSGeoのチケット.
が,Makefile のバージョン管理に RCS 使ってたので,先ずは,
% brew intall rcs
それ以前としては, /usr/local に入っている HPC compiler を上書きさせないために, /opt/homebrew をインストール先にした.参考にした記事はこちら.
cd /opt
sudo mkdir homebrew
sudo chown ${USER}:staff homebrew
curl -L https://github.com/Homebrew/brew/tarball/master | tar xz --strip 1 -C homebrew
依存ライブラリのインストール
% brew install netcdf
% brew install proj
% brew install fftw
(伴って gcc のインストールも始まっていて重い・・・)
Makefile:
PROJ4_DIR=/opt/homebrew
FFTW3_INCLUDE_DIR=/opt/homebrew/include
NETCDF=/opt/homebrew
% make
In file included from mapproject.c:4:
/opt/homebrew/include/proj_api.h:37:2: error: #error 'To use the proj_api.h you must define the macro ACCEPT_USE_OF_DEPRECATED_PROJ_API_H'
#error 'To use the proj_api.h you must define the macro ACCEPT_USE_OF_DEPRECATED_PROJ_API_H'
^~~~~
mapproject.c で,proj_api.h を include する前に, ACCEPT_USE_OF_DEPRECATED_PROJ_API_H を定義してあげると, make が通るようになります.
% cat mapproject.patch
*** mapproject.c 2019/12/11 20:49:39 1.1
--- mapproject.c 2019/12/11 20:51:04
***************
*** 1,6 ****
--- 1,7 ----
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
+ #define ACCEPT_USE_OF_DEPRECATED_PROJ_API_H
#include <proj_api.h>
static projPJ pj_tmerc, pj_latlong;
もしくは,proj をバージョン5にするという解決策もあるようですが,,,悩みどころ.
参考までに,GitHub上のOSGeoのチケット.