NetBSD/external/lgpl2/mpc/dist/Makefile.vc

419 lines
14 KiB
Makefile

# Makefile for the MPC library (Windows version).
#
# Copyright (C) INRIA - CNRS, 2002, 2004, 2005, 2007, 2008, 2009, 2010, 2011
#
# This file is part of the MPC Library.
#
# The MPC Library is free software; you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or (at your
# option) any later version.
#
# The MPC Library 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 Lesser General Public
# License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with the MPC Library; see the file COPYING.LIB. If not, write to
# the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
# MA 02111-1307, USA.
#
# usage:
# nmake /f Makefile.vc clean
# clean the temporaries objects
#
# nmake /f Makefile.vc STATIC=0|1 GMPDIR=gmpdirectory MPFRDIR=mpfrdirectory
# compile MPC
#
# nmake /f Makefile.vc STATIC=0|1 install GMPDIR=gmpdirectory MPFRDIR=mpfrdirectory DESTDIR=installdirectory
# install MPC to installdirectory
#
# nmake /f Makefile.vc STATIC=0|1 check GMPDIR=gmpdirectory MPFRDIR=mpfrdirectory
# perform tests on MPC
#
# GMPDIR : specify the location where GMP is installed
# MPFRDIR : specify the location where MPFR is installed
# DESTDIR : specify the location where MPC will be installed
# STATIC : specify if a static or dynamic library of MPC will be created
# STATIC=1 : build a static library
# STATIC=0 : build a dynamic library (DLL)
# A dynamic library is created by default if STATIC is omitted (STATIC=0)
# ENABLELOGGING : specify if MPC functions calls are logged
# ENABLELOGGING=1 : MPC functions calls are logged
# ENABLELOGGING=0 : MPC functions calls are not logged (default)
# Functions calls are not logged by default if ENABLELOGGING is omitted (ENABLELOGGING=0)
CPP = cl.exe
CC = cl.exe
CDEFAULTFLAGS=/O2 /GR- /MD /nologo /EHs
VERSION=0.9
######################## do not edit below this line ##########################
DIRMPC=.\src
DIRMPCTESTS=.\tests\\
!if "$(STATIC)" == "0"
LIBRARY = libmpc.dll
LINKER = link.exe /DLL
GMPMUSTBEDLL=/D__GMP_LIBGMP_DLL
!else
LIBRARY = libmpc.lib
LINKER = lib.exe
GMPMUSTBEDLL=
!endif
#check for logging. if yes then add logging.c to the library
!if "$(ENABLELOGGING)" == "1"
CPPOBJECTS_LOGGING = $(DIRMPC)\logging.obj
CPPLINKOBJECTS_LOGGING = logging.obj
LIBS_LOGGING = kernel32.lib
!else
CPPOBJECTS_LOGGING =
CPPLINKOBJECTS_LOGGING =
LIBS_LOGGING =
!endif
INCLUDES = /I$(DIRMPC) /I$(GMPDIR)\include /I$(MPFR)\include
CKERNELFLAGS = $(CDEFAULTFLAGS) $(GMPMUSTBEDLL) $(INCLUDES)
CFLAGS = $(CKERNELFLAGS) /D__MPC_WITHIN_MPC /D_GMP_IEEE_FLOATS /DHAVE_CONFIG_H
TESTCOMPILE=$(CC) $(CKERNELFLAGS) $(DIRMPCTESTS)\tgeneric.c $(DIRMPCTESTS)\comparisons.c $(DIRMPCTESTS)\memory.c $(DIRMPCTESTS)\read_data.c $(DIRMPCTESTS)\random.c $(DIRMPCTESTS)
MIDTESTCOMPILE=/link /out:$(DIRMPCTESTS)
ENDTESTCOMPILE=/LIBPATH:"$(GMPDIR)\lib" libmpc.lib libmpfr.lib libgmp.lib $(LIBS_LOGGING)
#generate the CPPOBJECTS : goto src and execute
# ls *.c | sed "s/\.c/\.obj/" | awk ' { printf("$(DIRMPC)\\%s \\\n",$1); } '
#generate the CPPLINKOBJECTS : goto src and execute
# ls *.c | sed "s/\.c/\.obj/" | awk ' { printf("%s \\\n",$1); } '
#generate the list for tests : goto tests and execute
# ls t*.c | sed "s/\.c//" | grep -v tgeneric| grep -v comparisons | grep -v read_data | grep -v random | awk ' { printf("\t$(TESTCOMPILE)%s.c $(MIDTESTCOMPILE)%s.exe $(ENDTESTCOMPILE)\n\tcd $(DIRMPCTESTS) && %s.exe && cd ..\n",$1,$1,$1,$1); } '
LIBRARYLIB = libmpc.lib
CPPOBJECTS = $(DIRMPC)\abs.obj \
$(DIRMPC)\acos.obj \
$(DIRMPC)\acosh.obj \
$(DIRMPC)\add.obj \
$(DIRMPC)\add_fr.obj \
$(DIRMPC)\add_si.obj \
$(DIRMPC)\add_ui.obj \
$(DIRMPC)\arg.obj \
$(DIRMPC)\asin.obj \
$(DIRMPC)\asinh.obj \
$(DIRMPC)\atan.obj \
$(DIRMPC)\atanh.obj \
$(DIRMPC)\clear.obj \
$(DIRMPC)\cmp.obj \
$(DIRMPC)\cmp_si_si.obj \
$(DIRMPC)\conj.obj \
$(DIRMPC)\cosh.obj \
$(DIRMPC)\div.obj \
$(DIRMPC)\div_2exp.obj \
$(DIRMPC)\div_fr.obj \
$(DIRMPC)\div_ui.obj \
$(DIRMPC)\exp.obj \
$(DIRMPC)\fma.obj \
$(DIRMPC)\fr_div.obj \
$(DIRMPC)\fr_sub.obj \
$(DIRMPC)\get.obj \
$(DIRMPC)\get_prec.obj \
$(DIRMPC)\get_prec2.obj \
$(DIRMPC)\get_str.obj \
$(DIRMPC)\get_version.obj \
$(DIRMPC)\imag.obj \
$(DIRMPC)\init2.obj \
$(DIRMPC)\init3.obj \
$(DIRMPC)\inp_str.obj \
$(DIRMPC)\log.obj \
$(DIRMPC)\mem.obj \
$(DIRMPC)\mul.obj \
$(DIRMPC)\mul_2exp.obj \
$(DIRMPC)\mul_fr.obj \
$(DIRMPC)\mul_i.obj \
$(DIRMPC)\mul_si.obj \
$(DIRMPC)\mul_ui.obj \
$(DIRMPC)\neg.obj \
$(DIRMPC)\norm.obj \
$(DIRMPC)\out_str.obj \
$(DIRMPC)\pow.obj \
$(DIRMPC)\pow_d.obj \
$(DIRMPC)\pow_fr.obj \
$(DIRMPC)\pow_ld.obj \
$(DIRMPC)\pow_si.obj \
$(DIRMPC)\pow_ui.obj \
$(DIRMPC)\pow_z.obj \
$(DIRMPC)\proj.obj \
$(DIRMPC)\real.obj \
$(DIRMPC)\set.obj \
$(DIRMPC)\set_prec.obj \
$(DIRMPC)\set_str.obj \
$(DIRMPC)\set_x.obj \
$(DIRMPC)\set_x_x.obj \
$(DIRMPC)\sin_cos.obj \
$(DIRMPC)\sinh.obj \
$(DIRMPC)\sqr.obj \
$(DIRMPC)\sqrt.obj \
$(DIRMPC)\strtoc.obj \
$(DIRMPC)\sub.obj \
$(DIRMPC)\sub_fr.obj \
$(DIRMPC)\sub_ui.obj \
$(DIRMPC)\swap.obj \
$(DIRMPC)\tan.obj \
$(DIRMPC)\tanh.obj \
$(DIRMPC)\uceil_log2.obj \
$(DIRMPC)\ui_div.obj \
$(DIRMPC)\ui_ui_sub.obj $(CPPOBJECTS_LOGGING) \
$(DIRMPC)\urandom.obj
CPPLINKOBJECTS = abs.obj \
acos.obj \
acosh.obj \
add.obj \
add_fr.obj \
add_si.obj \
add_ui.obj \
arg.obj \
asin.obj \
asinh.obj \
atan.obj \
atanh.obj \
clear.obj \
cmp.obj \
cmp_si_si.obj \
conj.obj \
cosh.obj \
div.obj \
div_2exp.obj \
div_fr.obj \
div_ui.obj \
exp.obj \
fma.obj \
fr_div.obj \
fr_sub.obj \
get.obj \
get_prec.obj \
get_prec2.obj \
get_str.obj \
get_version.obj \
imag.obj \
init2.obj \
init3.obj \
inp_str.obj \
log.obj \
mem.obj \
mul.obj \
mul_2exp.obj \
mul_fr.obj \
mul_i.obj \
mul_si.obj \
mul_ui.obj \
neg.obj \
norm.obj \
out_str.obj \
pow.obj \
pow_d.obj \
pow_fr.obj \
pow_ld.obj \
pow_si.obj \
pow_ui.obj \
pow_z.obj \
proj.obj \
real.obj \
set.obj \
set_prec.obj \
set_str.obj \
set_x.obj \
set_x_x.obj \
sin_cos.obj \
sinh.obj \
sqr.obj \
sqrt.obj \
strtoc.obj \
sub.obj \
sub_fr.obj \
sub_ui.obj \
swap.obj \
tan.obj \
tanh.obj \
uceil_log2.obj \
ui_div.obj \
ui_ui_sub.obj $(CPPLINKOBJECTS_LOGGING) \
urandom.obj
#
# Link target: automatically builds its object dependencies before
# executing its link command.
#
$(LIBRARY): $(DIRMPC)config.h $(CPPOBJECTS)
$(LINKER) /out:$@ $(CPPLINKOBJECTS) /LIBPATH:"$(GMPDIR)\lib" libmpfr.lib libgmp.lib $(LIBS_LOGGING)
$(DIRMPC)config.h :
echo #define PACKAGE_STRING "mpc" >$(DIRMPC)\config.h
echo #define PACKAGE_VERSION "$(VERSION)" >>$(DIRMPC)\config.h
echo #define STDC_HEADERS 1 >>$(DIRMPC)\config.h
echo #define dlsym(handle, name) GetProcAddress(GetModuleHandle(handle), name) >>$(DIRMPC)\config.h
echo #include "windows.h" >>$(DIRMPC)\config.h
#
# Clean target: "nmake /f Makefile.vc clean" to remove unwanted
# objects and executables.
#
clean:
del *.obj $(CPPLINKOBJECTS) $(LIBRARY) *.tlh $(DIRMPC)config.h *.dll *.lib *.exe
#
# install target: "nmake /f Makefile.vc install DESTDIR=xxx" to perform the installation.
#
install: $(LIBRARY)
-mkdir $(DESTDIR)
-mkdir $(DESTDIR)\include
copy $(DIRMPC)\mpc.h $(DESTDIR)\include
-mkdir $(DESTDIR)\lib
copy $(LIBRARY) $(DESTDIR)\lib
copy $(LIBRARYLIB) $(DESTDIR)\lib
#
# check target: "nmake /f Makefile.vc check GMPDIR=xxx MPFRDIR=xxx" to perform the installation.
#
check : test
test :
-copy $(GMPDIR)\lib\*gmp*.dll $(DIRMPCTESTS)
-copy $(MPFRDIR)\lib\*mpfr*.dll $(DIRMPCTESTS)
copy $(LIBRARY) $(DIRMPCTESTS)
$(TESTCOMPILE)tabs.c $(MIDTESTCOMPILE)tabs.exe $(ENDTESTCOMPILE)
cd $(DIRMPCTESTS) && tabs.exe && cd ..
$(TESTCOMPILE)tacos.c $(MIDTESTCOMPILE)tacos.exe $(ENDTESTCOMPILE)
cd $(DIRMPCTESTS) && tacos.exe && cd ..
$(TESTCOMPILE)tacosh.c $(MIDTESTCOMPILE)tacosh.exe $(ENDTESTCOMPILE)
cd $(DIRMPCTESTS) && tacosh.exe && cd ..
$(TESTCOMPILE)tadd.c $(MIDTESTCOMPILE)tadd.exe $(ENDTESTCOMPILE)
cd $(DIRMPCTESTS) && tadd.exe && cd ..
$(TESTCOMPILE)tadd_fr.c $(MIDTESTCOMPILE)tadd_fr.exe $(ENDTESTCOMPILE)
cd $(DIRMPCTESTS) && tadd_fr.exe && cd ..
$(TESTCOMPILE)tadd_si.c $(MIDTESTCOMPILE)tadd_si.exe $(ENDTESTCOMPILE)
cd $(DIRMPCTESTS) && tadd_si.exe && cd ..
$(TESTCOMPILE)tadd_ui.c $(MIDTESTCOMPILE)tadd_ui.exe $(ENDTESTCOMPILE)
cd $(DIRMPCTESTS) && tadd_ui.exe && cd ..
$(TESTCOMPILE)targ.c $(MIDTESTCOMPILE)targ.exe $(ENDTESTCOMPILE)
cd $(DIRMPCTESTS) && targ.exe && cd ..
$(TESTCOMPILE)tasin.c $(MIDTESTCOMPILE)tasin.exe $(ENDTESTCOMPILE)
cd $(DIRMPCTESTS) && tasin.exe && cd ..
$(TESTCOMPILE)tasinh.c $(MIDTESTCOMPILE)tasinh.exe $(ENDTESTCOMPILE)
cd $(DIRMPCTESTS) && tasinh.exe && cd ..
$(TESTCOMPILE)tatan.c $(MIDTESTCOMPILE)tatan.exe $(ENDTESTCOMPILE)
cd $(DIRMPCTESTS) && tatan.exe && cd ..
$(TESTCOMPILE)tatanh.c $(MIDTESTCOMPILE)tatanh.exe $(ENDTESTCOMPILE)
cd $(DIRMPCTESTS) && tatanh.exe && cd ..
$(TESTCOMPILE)tconj.c $(MIDTESTCOMPILE)tconj.exe $(ENDTESTCOMPILE)
cd $(DIRMPCTESTS) && tconj.exe && cd ..
$(TESTCOMPILE)tcos.c $(MIDTESTCOMPILE)tcos.exe $(ENDTESTCOMPILE)
cd $(DIRMPCTESTS) && tcos.exe && cd ..
$(TESTCOMPILE)tcosh.c $(MIDTESTCOMPILE)tcosh.exe $(ENDTESTCOMPILE)
cd $(DIRMPCTESTS) && tcosh.exe && cd ..
$(TESTCOMPILE)tdiv.c $(MIDTESTCOMPILE)tdiv.exe $(ENDTESTCOMPILE)
cd $(DIRMPCTESTS) && tdiv.exe && cd ..
$(TESTCOMPILE)tdiv_2exp.c $(MIDTESTCOMPILE)tdiv_2exp.exe $(ENDTESTCOMPILE)
cd $(DIRMPCTESTS) && tdiv_2exp.exe && cd ..
$(TESTCOMPILE)tdiv_fr.c $(MIDTESTCOMPILE)tdiv_fr.exe $(ENDTESTCOMPILE)
cd $(DIRMPCTESTS) && tdiv_fr.exe && cd ..
$(TESTCOMPILE)tdiv_ui.c $(MIDTESTCOMPILE)tdiv_ui.exe $(ENDTESTCOMPILE)
cd $(DIRMPCTESTS) && tdiv_ui.exe && cd ..
$(TESTCOMPILE)texp.c $(MIDTESTCOMPILE)texp.exe $(ENDTESTCOMPILE)
cd $(DIRMPCTESTS) && texp.exe && cd ..
$(TESTCOMPILE)tfma.c $(MIDTESTCOMPILE)tfma.exe $(ENDTESTCOMPILE)
cd $(DIRMPCTESTS) && tfma.exe && cd ..
$(TESTCOMPILE)tfr_div.c $(MIDTESTCOMPILE)tfr_div.exe $(ENDTESTCOMPILE)
cd $(DIRMPCTESTS) && tfr_div.exe && cd ..
$(TESTCOMPILE)tfr_sub.c $(MIDTESTCOMPILE)tfr_sub.exe $(ENDTESTCOMPILE)
cd $(DIRMPCTESTS) && tfr_sub.exe && cd ..
$(TESTCOMPILE)tget_version.c $(MIDTESTCOMPILE)tget_version.exe $(ENDTESTCOMPILE)
cd $(DIRMPCTESTS) && tget_version.exe && cd ..
$(TESTCOMPILE)timag.c $(MIDTESTCOMPILE)timag.exe $(ENDTESTCOMPILE)
cd $(DIRMPCTESTS) && timag.exe && cd ..
$(TESTCOMPILE)tio_str.c $(MIDTESTCOMPILE)tio_str.exe $(ENDTESTCOMPILE)
cd $(DIRMPCTESTS) && tio_str.exe && cd ..
$(TESTCOMPILE)tlog.c $(MIDTESTCOMPILE)tlog.exe $(ENDTESTCOMPILE)
cd $(DIRMPCTESTS) && tlog.exe && cd ..
$(TESTCOMPILE)tmul.c $(MIDTESTCOMPILE)tmul.exe $(ENDTESTCOMPILE)
cd $(DIRMPCTESTS) && tmul.exe && cd ..
$(TESTCOMPILE)tmul_2exp.c $(MIDTESTCOMPILE)tmul_2exp.exe $(ENDTESTCOMPILE)
cd $(DIRMPCTESTS) && tmul_2exp.exe && cd ..
$(TESTCOMPILE)tmul_fr.c $(MIDTESTCOMPILE)tmul_fr.exe $(ENDTESTCOMPILE)
cd $(DIRMPCTESTS) && tmul_fr.exe && cd ..
$(TESTCOMPILE)tmul_i.c $(MIDTESTCOMPILE)tmul_i.exe $(ENDTESTCOMPILE)
cd $(DIRMPCTESTS) && tmul_i.exe && cd ..
$(TESTCOMPILE)tmul_si.c $(MIDTESTCOMPILE)tmul_si.exe $(ENDTESTCOMPILE)
cd $(DIRMPCTESTS) && tmul_si.exe && cd ..
$(TESTCOMPILE)tmul_ui.c $(MIDTESTCOMPILE)tmul_ui.exe $(ENDTESTCOMPILE)
cd $(DIRMPCTESTS) && tmul_ui.exe && cd ..
$(TESTCOMPILE)tneg.c $(MIDTESTCOMPILE)tneg.exe $(ENDTESTCOMPILE)
cd $(DIRMPCTESTS) && tneg.exe && cd ..
$(TESTCOMPILE)tnorm.c $(MIDTESTCOMPILE)tnorm.exe $(ENDTESTCOMPILE)
cd $(DIRMPCTESTS) && tnorm.exe && cd ..
$(TESTCOMPILE)tpow.c $(MIDTESTCOMPILE)tpow.exe $(ENDTESTCOMPILE)
cd $(DIRMPCTESTS) && tpow.exe && cd ..
$(TESTCOMPILE)tpow_d.c $(MIDTESTCOMPILE)tpow_d.exe $(ENDTESTCOMPILE)
cd $(DIRMPCTESTS) && tpow_d.exe && cd ..
$(TESTCOMPILE)tpow_fr.c $(MIDTESTCOMPILE)tpow_fr.exe $(ENDTESTCOMPILE)
cd $(DIRMPCTESTS) && tpow_fr.exe && cd ..
$(TESTCOMPILE)tpow_ld.c $(MIDTESTCOMPILE)tpow_ld.exe $(ENDTESTCOMPILE)
cd $(DIRMPCTESTS) && tpow_ld.exe && cd ..
$(TESTCOMPILE)tpow_si.c $(MIDTESTCOMPILE)tpow_si.exe $(ENDTESTCOMPILE)
cd $(DIRMPCTESTS) && tpow_si.exe && cd ..
$(TESTCOMPILE)tpow_ui.c $(MIDTESTCOMPILE)tpow_ui.exe $(ENDTESTCOMPILE)
cd $(DIRMPCTESTS) && tpow_ui.exe && cd ..
$(TESTCOMPILE)tpow_z.c $(MIDTESTCOMPILE)tpow_z.exe $(ENDTESTCOMPILE)
cd $(DIRMPCTESTS) && tpow_z.exe && cd ..
$(TESTCOMPILE)tprec.c $(MIDTESTCOMPILE)tprec.exe $(ENDTESTCOMPILE)
cd $(DIRMPCTESTS) && tprec.exe && cd ..
$(TESTCOMPILE)tproj.c $(MIDTESTCOMPILE)tproj.exe $(ENDTESTCOMPILE)
cd $(DIRMPCTESTS) && tproj.exe && cd ..
$(TESTCOMPILE)treal.c $(MIDTESTCOMPILE)treal.exe $(ENDTESTCOMPILE)
cd $(DIRMPCTESTS) && treal.exe && cd ..
$(TESTCOMPILE)treimref.c $(MIDTESTCOMPILE)treimref.exe $(ENDTESTCOMPILE)
cd $(DIRMPCTESTS) && treimref.exe && cd ..
$(TESTCOMPILE)tset.c $(MIDTESTCOMPILE)tset.exe $(ENDTESTCOMPILE)
cd $(DIRMPCTESTS) && tset.exe && cd ..
$(TESTCOMPILE)tsin.c $(MIDTESTCOMPILE)tsin.exe $(ENDTESTCOMPILE)
cd $(DIRMPCTESTS) && tsin.exe && cd ..
$(TESTCOMPILE)tsin_cos.c $(MIDTESTCOMPILE)tsin_cos.exe $(ENDTESTCOMPILE)
cd $(DIRMPCTESTS) && tsin_cos.exe && cd ..
$(TESTCOMPILE)tsinh.c $(MIDTESTCOMPILE)tsinh.exe $(ENDTESTCOMPILE)
cd $(DIRMPCTESTS) && tsinh.exe && cd ..
$(TESTCOMPILE)tsqr.c $(MIDTESTCOMPILE)tsqr.exe $(ENDTESTCOMPILE)
cd $(DIRMPCTESTS) && tsqr.exe && cd ..
$(TESTCOMPILE)tsqrt.c $(MIDTESTCOMPILE)tsqrt.exe $(ENDTESTCOMPILE)
cd $(DIRMPCTESTS) && tsqrt.exe && cd ..
$(TESTCOMPILE)tstrtoc.c $(MIDTESTCOMPILE)tstrtoc.exe $(ENDTESTCOMPILE)
cd $(DIRMPCTESTS) && tstrtoc.exe && cd ..
$(TESTCOMPILE)tsub.c $(MIDTESTCOMPILE)tsub.exe $(ENDTESTCOMPILE)
cd $(DIRMPCTESTS) && tsub.exe && cd ..
$(TESTCOMPILE)tsub_fr.c $(MIDTESTCOMPILE)tsub_fr.exe $(ENDTESTCOMPILE)
cd $(DIRMPCTESTS) && tsub_fr.exe && cd ..
$(TESTCOMPILE)tsub_ui.c $(MIDTESTCOMPILE)tsub_ui.exe $(ENDTESTCOMPILE)
cd $(DIRMPCTESTS) && tsub_ui.exe && cd ..
$(TESTCOMPILE)ttan.c $(MIDTESTCOMPILE)ttan.exe $(ENDTESTCOMPILE)
cd $(DIRMPCTESTS) && ttan.exe && cd ..
$(TESTCOMPILE)ttanh.c $(MIDTESTCOMPILE)ttanh.exe $(ENDTESTCOMPILE)
cd $(DIRMPCTESTS) && ttanh.exe && cd ..
$(TESTCOMPILE)tui_div.c $(MIDTESTCOMPILE)tui_div.exe $(ENDTESTCOMPILE)
cd $(DIRMPCTESTS) && tui_div.exe && cd ..
$(TESTCOMPILE)tui_ui_sub.c $(MIDTESTCOMPILE)tui_ui_sub.exe $(ENDTESTCOMPILE)
cd $(DIRMPCTESTS) && tui_ui_sub.exe && cd ..
@echo --------------------------------------------------
@echo All tests passed
@echo --------------------------------------------------