Commit d6124948 authored by Stéphane Adjemian's avatar Stéphane Adjemian

Added rules to build x13 binaries and produce a zip archive of the dseries class.

parent 222beb22
Pipeline #1785 passed with stage
in 2 minutes and 53 seconds
......@@ -6,3 +6,8 @@ m-unit-tests/*
src/git.info
src/git.last-commit-hash
*.zip
binaries/*
osxcross/*
OCTAVE=octave-cli
MATLAB=`which matlab`
ROOT_PATH := ${CURDIR}
OSX_SDK_VERSION=10.11
OSXCROSS_VERSION=d39ba022313f2d5a1f5d02caaa1efb23d07a559b
SRC_REMOTE_ADDRESS=https://www.census.gov/ts/x13as/unix/
SRC_REMOTE_FILE=x13assrc_V1.1_B39.tar.gz
.PHONY: all osxcross check-octave check-matlab build windows linux osx clean-sources clean-binaries
all: check-octave check-matlab
m-unit-tests/src/mtest.m:
......@@ -17,3 +25,114 @@ check-clean:
rm -f tests/*_test_*.m tests/*.csv tests/*.xls tests/*.xlsx tests/*.mat tests/failed tests/datafile_for_test
rm -f git.info git.last-commit-hash tests/pass tests/failed tests/*.spc
rm -rf m-unit-tests
build: osxcross windows osx linux
rm -rf x13src
windows: binaries/windows/64/x13as.exe binaries/windows/32/x13as.exe
osx:
mv osxcross/target/x86_64-apple-darwin15/lib/libquadmath.dylib osxcross/target/x86_64-apple-darwin15/lib/libquadmath.dylib.cache
mv osxcross/target/x86_64-apple-darwin15/lib/libquadmath.0.dylib osxcross/target/x86_64-apple-darwin15/lib/libquadmath.0.dylib.cache
$(MAKE) binaries/osx/64/x13as
$(MAKE) binaries/osx/32/x13as
mv osxcross/target/x86_64-apple-darwin15/lib/libquadmath.dylib.cache osxcross/target/x86_64-apple-darwin15/lib/libquadmath.dylib
mv osxcross/target/x86_64-apple-darwin15/lib/libquadmath.0.dylib.cache osxcross/target/x86_64-apple-darwin15/lib/libquadmath.0.dylib
linux: binaries/linux/64/x13as binaries/linux/32/x13as
osxcross: osxcross/target/bin/x86_64-apple-darwin15-gfortran
osxcross/target/bin/x86_64-apple-darwin15-gfortran: osxcross/README.md osxcross/tarballs/MacOSX$(OSX_SDK_VERSION).sdk.tar.xz
cd osxcross; UNATTENDED=1 ./build.sh
cd osxcross; GCC_VERSION=9.2.0 ENABLE_FORTRAN=1 ./build_gcc.sh
osxcross/README.md: $(OSXCROSS_VERSION).zip
unzip $(OSXCROSS_VERSION).zip
mkdir -p osxcross
mv osxcross-$(OSXCROSS_VERSION)/* osxcross
rm -rf osxcross-$(OSXCROSS_VERSION)
touch osxcross/README.md
osxcross/tarballs/MacOSX$(OSX_SDK_VERSION).sdk.tar.xz:
wget https://dynare.adjemian.eu/osx/$(OSX_SDK_VERSION)/sdk.tar.xz -O sdk.tar.xz
mkdir -p osxcross/tarballs/MacOSX
mv sdk.tar.xz $@
$(OSXCROSS_VERSION).zip:
wget https://github.com/tpoechtrager/osxcross/archive/$(OSXCROSS_VERSION).zip
binaries/linux/32/x13as: x13src/Makefile
mkdir -p tmp/linux/32
cp x13src/* tmp/linux/32
cd tmp/linux/32; make -j4 FC=gfortran LINKER=gfortran FFLAGS="-O2 -m32" LDFLAGS="-s -m32" PROGRAM=x13as
mkdir -p binaries/linux/32
mv tmp/linux/32/x13as binaries/linux/32/x13as
rm -rf tmp/linux/32
binaries/linux/64/x13as: x13src/Makefile
mkdir -p tmp/linux/64
cp x13src/* tmp/linux/64
cd tmp/linux/64; make -j4 FC=gfortran LINKER=gfortran FFLAGS="-O2 -m64" PROGRAM=x13as
mkdir -p binaries/linux/64
mv tmp/linux/64/x13as binaries/linux/64/x13as
rm -rf tmp/linux/64
binaries/windows/32/x13as.exe: x13src/Makefile
mkdir -p tmp/windows/32
cp x13src/* tmp/windows/32
cd tmp/windows/32; make FC=i686-w64-mingw32-gfortran LINKER=i686-w64-mingw32-gfortran FFLAGS="-O2" PROGRAM=x13as.exe
mkdir -p binaries/windows/32
mv tmp/windows/32/x13as.exe binaries/windows/32/x13as.exe
rm -rf tmp/windows/32
binaries/windows/64/x13as.exe: x13src/Makefile
mkdir -p tmp/windows/64
cp x13src/* tmp/windows/64
cd tmp/windows/64; make FC=x86_64-w64-mingw32-gfortran LINKER=x86_64-w64-mingw32-gfortran FFLAGS="-O2" PROGRAM=x13as.exe
mkdir -p binaries/windows/64
mv tmp/windows/64/x13as.exe binaries/windows/64/x13as.exe
rm -rf tmp/windows/64
binaries/osx/64/x13as: x13src/Makefile
mkdir -p tmp/osx/64
cp x13src/* tmp/osx/64
cd tmp/osx/64; patch Makefile < ../../../patches/Makefile.osx.patch; export PATH=$(ROOT_PATH)/osxcross/target/bin:$(PATH); make FC=x86_64-apple-darwin15-gfortran FFLAGS="-m64" LINKER=x86_64-apple-darwin15-gfortran LDFLAGS="-static-libgcc -static-libgfortran" PROGRAMM=x13as
mkdir -p binaries/osx/64
mv tmp/osx/64/x13as binaries/osx/64/x13as
rm -rf tmp/osx/64
binaries/osx/32/x13as: x13src/Makefile
mkdir -p tmp/osx/32
cp x13src/* tmp/osx/32
cd tmp/osx/32; patch Makefile < ../../../patches/Makefile.osx.patch; export PATH=$(ROOT_PATH)/osxcross/target/bin:$(PATH); make FC=x86_64-apple-darwin15-gfortran FFLAGS="-m32" LINKER=x86_64-apple-darwin15-gfortran LDFLAGS="-m32 -static-libgcc -static-libgfortran" PROGRAMM=x13as
mkdir -p binaries/osx/32
mv tmp/osx/32/x13as binaries/osx/32/x13as
rm -rf tmp/osx/32
x13src/${SRC_REMOTE_FILE}:
mkdir -p x13src
cd x13src; wget ${SRC_REMOTE_ADDRESS}${SRC_REMOTE_FILE}
x13src/Makefile: x13src/${SRC_REMOTE_FILE}
cd x13src; tar xvf ${SRC_REMOTE_FILE}; mv makefile.gf Makefile; patch Makefile < ../patches/Makefile.patch
externals/x13/linux/64/x13as: build
rm -rf tmp
cp -r binaries/* externals/x13
dseries.zip: externals/x13/linux/64/x13as
mkdir -p tmp/dseries
cp -r src tmp/dseries
cp -r externals tmp/dseries
cp -r tests tmp/dseries
cp LICENSE.md tmp/dseries
cp README.md tmp/dseries
cd tmp && zip -r dseries.zip dseries && mv dseries.zip ../
rm -rf tmp
clean-sources:
rm x13src/*.i x13src/*.f x13src/*.prm x13src/*.cmn x13src/*.var x13src/Makefile
clean-binaries:
rm -rf binaries
--- Makefile 2017-09-01 18:04:35.825494849 +0200
+++ Makefile 2017-09-02 07:54:49.040617509 +0200
@@ -288,7 +288,7 @@
getrevdec.f m2q.f chqsea.f
$(PROGRAM): $(OBJS) $(LIBS)
- $(LINKER) -static -o $@ $(OBJS) $(LDMAP) $(LIBS) $(LDFLAGS)
+ $(LINKER) -o $@ $(OBJS) $(LDMAP) $(LIBS) $(LDFLAGS)
clean:
@rm -f $(OBJS)
--- src2/Makefile 2016-02-03 18:14:44.000000000 +0100
+++ src/Makefile 2017-02-22 15:21:23.620664965 +0100
@@ -1,15 +1,15 @@
-# MKMF template makefile for protected mode executables.
-FC = gfortran
-LINKER = gfortran
-PROGRAM = x13asv11b39
-DEST = .
-EXTHDRS =
-FFLAGS = -O0
-HDRS =
-LDFLAGS = -s
+FC ?= gfortran
+LINKER ?= gfortran
+PROGRAM ?= x13as
+DEST ?= .
+EXTHDRS =
+FFLAGS ?= -O0
+HDRS =
+LDFLAGS ?= -s
LDMAP =
LIBS =
MAKEFILE = Makefile
+
OBJS = aaamain.o abend.o acf.o acfar.o acfdgn.o \
acfhdr.o addadj.o addaic.o addate.o addeas.o \
addfix.o addlom.o addmat.o addmul.o addotl.o \
@@ -287,14 +287,16 @@
compcrodiag.f phasegain.f altundovrtst.f \
getrevdec.f
-$(PROGRAM): $(OBJS) $(LIBS)
+$(PROGRAM): $(OBJS) $(LIBS)
$(LINKER) -static -o $@ $(OBJS) $(LDMAP) $(LIBS) $(LDFLAGS)
-clean:; @rm -f $(OBJS)
+clean:
+ @rm -f $(OBJS)
-install: $(PROGRAM)
+install: $(PROGRAM)
@echo Installing $(PROGRAM) in $(DEST)
@if not $(DEST)x==.x copy $(PROGRAM) $(DEST)
+
### OPUS MKMF: Do not remove this line! Automatic dependencies follow.
aaamain.o: build.prm cchars.i chrt.cmn error.cmn hiddn.cmn lex.i \
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment