building proj4

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

building proj4

Wellspring, Lance

Hello all,

 

I needed a 64 bit version of proj4 and was able to build it from source on Win7 using the VS 2010 command line compiler.  My application then successfully used this custom build. 

 

However, I now have a need to build proj4 using Intel Integrated Performance Primitives (IPP).  This basically entails changing all uses of ‘cl’ to ‘icl’, and uses of ‘link’ to ‘xilink’, and then of course adding whatever options I need.  Intel IPP works basically as a plugin to VS 2010 (as I’m using it), adding an Intel compiler mode to the VS 2010 command line compiler.

 

My problem is  even though I changed all uses of ‘cl’ to ‘icl’ in ‘Proj\src\makefile.vc’, when calling ‘nmake /f Proj\makefile.vc’ it still uses ‘cl’ in some cases.  I cannot seem to find where these additional ‘cl’ calls are being made from so that I can change them.  Here is the initial output of the build, where the first rogue ‘cl’ is called:

 

C:\PROJ\proj-4.8.0>nmake /f makefile.vc

 

Microsoft (R) Program Maintenance Utility Version 10.00.30319.01

Copyright (C) Microsoft Corporation.  All rights reserved.

 

        cd src

        nmake /f makefile.vc

 

Microsoft (R) Program Maintenance Utility Version 10.00.30319.01

Copyright (C) Microsoft Corporation.  All rights reserved.

 

        cl /nologo -I. -DPROJ_LIB=\"C:\PROJ\SHARE\"  -DHAVE_STRERROR=1 /nologo /

MD /O2 /Oi /Ot /GS- /fp:precise /GA /QxSSE4.1 /Qipo /c aasincos.c adjlon.c bch2b

ps.c bchgen.c pj_gauss.c biveval.c dmstor.c mk_cheby.c pj_auth.c pj_deriv.c pj_e

ll_set.c pj_ellps.c pj_errno.c pj_factors.c pj_fwd.c pj_init.c pj_inv.c pj_list.

c pj_malloc.c pj_mlfn.c pj_msfn.c pj_open_lib.c pj_param.c pj_phi2.c pj_pr_list.

c pj_qsfn.c pj_strerrno.c pj_tsfn.c pj_units.c pj_zpoly1.c rtodms.c vector1.c pj

_release.c geocent.c pj_transform.c pj_datum_set.c pj_datums.c pj_apply_gridshif

t.c nad_cvt.c nad_init.c nad_intr.c pj_utils.c pj_gridlist.c pj_gridinfo.c proj_

mdist.c pj_mutex.c pj_initcache.c pj_ctx.c pj_log.c pj_apply_vgridshift.c PJ_bog

gs.c PJ_collg.c PJ_crast.c PJ_denoy.c PJ_eck1.c PJ_eck2.c PJ_eck3.c PJ_eck4.c PJ

_eck5.c PJ_fahey.c PJ_fouc_s.c PJ_gins8.c PJ_gn_sinu.c PJ_goode.c PJ_igh.c PJ_ha

tano.c PJ_loxim.c PJ_mbt_fps.c PJ_mbtfpp.c PJ_mbtfpq.c PJ_moll.c PJ_nell.c PJ_ne

ll_h.c PJ_putp2.c PJ_putp3.c PJ_putp4p.c PJ_putp5.c PJ_putp6.c PJ_robin.c PJ_sts

.c PJ_urm5.c PJ_urmfps.c PJ_wag2.c PJ_wag3.c PJ_wink1.c PJ_wink2.c PJ_isea.c PJ_

aeqd.c PJ_gnom.c PJ_laea.c PJ_mod_ster.c PJ_nsper.c PJ_nzmg.c PJ_ortho.c PJ_ster

e.c PJ_sterea.c proj_rouss.c PJ_aea.c PJ_bipc.c PJ_bonne.c PJ_eqdc.c PJ_imw_p.c

PJ_lcc.c PJ_poly.c PJ_rpoly.c PJ_sconics.c PJ_lcca.c PJ_cass.c PJ_cc.c PJ_cea.c

PJ_eqc.c PJ_gall.c PJ_labrd.c PJ_lsat.c PJ_merc.c PJ_mill.c PJ_ocea.c PJ_omerc.c

PJ_somerc.c PJ_tcc.c PJ_tcea.c PJ_tmerc.c PJ_geos.c PJ_gstmerc.c proj_etmerc.c

PJ_airy.c PJ_aitoff.c PJ_august.c PJ_bacon.c PJ_chamb.c PJ_hammer.c PJ_lagrng.c

PJ_larr.c PJ_lask.c PJ_nocol.c PJ_ob_tran.c PJ_oea.c PJ_tpeqd.c PJ_vandg.c PJ_va

ndg2.c PJ_vandg4.c PJ_wag7.c pj_latlong.c PJ_krovak.c pj_geocent.c PJ_healpix.c

PJ_natearth.c

cl : Command line warning D9002 : ignoring unknown option '/QxSSE4.1'

cl : Command line warning D9002 : ignoring unknown option '/Qipo'

aasincos.c

adjlon.c

bch2bps.c

 

The ‘cd src’ and call to ‘nmake’ are in the wrapper makefile.vc.  Next is some output from VS 2010.  After that is the rogue ‘cl’.  The build goes on to do all the things that I expect, including the ‘lib’ and ‘xilink’ calls.  But I need the source files to be built with the ‘icl’ command, not ‘cl’.  What am I missing?  Where is this ‘cl’ being called from?

 

Thanks for your time,

Lance


_______________________________________________
Proj mailing list
[hidden email]
http://lists.maptools.org/mailman/listinfo/proj
Reply | Threaded
Open this post in threaded view
|

Re: building proj4

Eric Miller-4
I think if you replace all "cl" and "link" commands in the makefiles with $(CC) and $(LINK), respectively, and then set the environment variables to "icl.exe" and "xilink.exe", respectively, then it should work.  The src/makefile.vc is relying on inference rules to create "azimuthal", "conic", etc.  So, to satisfy those build rules, nmake uses whatever $(CC) command is defined.
--

Eric G. Miller
Software Developer
CA Dept. of Fish & Game


>>> On 4/5/2012 at  7:25 AM, "Wellspring, Lance" <[hidden email]>
wrote:

> Hello all,
>
> I needed a 64 bit version of proj4 and was able to build it from source on
> Win7 using the VS 2010 command line compiler.  My application then
> successfully used this custom build.
>
> However, I now have a need to build proj4 using Intel Integrated Performance
> Primitives (IPP).  This basically entails changing all uses of 'cl' to 'icl',
> and uses of 'link' to 'xilink', and then of course adding whatever options I
> need.  Intel IPP works basically as a plugin to VS 2010 (as I'm using it),
> adding an Intel compiler mode to the VS 2010 command line compiler.
>
> My problem is  even though I changed all uses of 'cl' to 'icl' in
> 'Proj\src\makefile.vc', when calling 'nmake /f Proj\makefile.vc' it still
> uses 'cl' in some cases.  I cannot seem to find where these additional 'cl'
> calls are being made from so that I can change them.  Here is the initial
> output of the build, where the first rogue 'cl' is called:
>
> C:\PROJ\proj-4.8.0>nmake /f makefile.vc
>
> Microsoft (R) Program Maintenance Utility Version 10.00.30319.01
> Copyright (C) Microsoft Corporation.  All rights reserved.
>
>         cd src
>         nmake /f makefile.vc
>
> Microsoft (R) Program Maintenance Utility Version 10.00.30319.01
> Copyright (C) Microsoft Corporation.  All rights reserved.
>
>         cl /nologo -I. -DPROJ_LIB=\"C:\PROJ\SHARE\"  -DHAVE_STRERROR=1 /nologo
> /
> MD /O2 /Oi /Ot /GS- /fp:precise /GA /QxSSE4.1 /Qipo /c aasincos.c adjlon.c
> bch2b
> ps.c bchgen.c pj_gauss.c biveval.c dmstor.c mk_cheby.c pj_auth.c pj_deriv.c
> pj_e
> ll_set.c pj_ellps.c pj_errno.c pj_factors.c pj_fwd.c pj_init.c pj_inv.c
> pj_list.
> c pj_malloc.c pj_mlfn.c pj_msfn.c pj_open_lib.c pj_param.c pj_phi2.c
> pj_pr_list.
> c pj_qsfn.c pj_strerrno.c pj_tsfn.c pj_units.c pj_zpoly1.c rtodms.c
> vector1.c pj
> _release.c geocent.c pj_transform.c pj_datum_set.c pj_datums.c
> pj_apply_gridshif
> t.c nad_cvt.c nad_init.c nad_intr.c pj_utils.c pj_gridlist.c pj_gridinfo.c
> proj_
> mdist.c pj_mutex.c pj_initcache.c pj_ctx.c pj_log.c pj_apply_vgridshift.c
> PJ_bog
> gs.c PJ_collg.c PJ_crast.c PJ_denoy.c PJ_eck1.c PJ_eck2.c PJ_eck3.c
> PJ_eck4.c PJ
> _eck5.c PJ_fahey.c PJ_fouc_s.c PJ_gins8.c PJ_gn_sinu.c PJ_goode.c PJ_igh.c
> PJ_ha
> tano.c PJ_loxim.c PJ_mbt_fps.c PJ_mbtfpp.c PJ_mbtfpq.c PJ_moll.c PJ_nell.c
> PJ_ne
> ll_h.c PJ_putp2.c PJ_putp3.c PJ_putp4p.c PJ_putp5.c PJ_putp6.c PJ_robin.c
> PJ_sts
> .c PJ_urm5.c PJ_urmfps.c PJ_wag2.c PJ_wag3.c PJ_wink1.c PJ_wink2.c PJ_isea.c
> PJ_
> aeqd.c PJ_gnom.c PJ_laea.c PJ_mod_ster.c PJ_nsper.c PJ_nzmg.c PJ_ortho.c
> PJ_ster
> e.c PJ_sterea.c proj_rouss.c PJ_aea.c PJ_bipc.c PJ_bonne.c PJ_eqdc.c
> PJ_imw_p.c
> PJ_lcc.c PJ_poly.c PJ_rpoly.c PJ_sconics.c PJ_lcca.c PJ_cass.c PJ_cc.c
> PJ_cea.c
> PJ_eqc.c PJ_gall.c PJ_labrd.c PJ_lsat.c PJ_merc.c PJ_mill.c PJ_ocea.c
> PJ_omerc.c
> PJ_somerc.c PJ_tcc.c PJ_tcea.c PJ_tmerc.c PJ_geos.c PJ_gstmerc.c
> proj_etmerc.c
> PJ_airy.c PJ_aitoff.c PJ_august.c PJ_bacon.c PJ_chamb.c PJ_hammer.c
> PJ_lagrng.c
> PJ_larr.c PJ_lask.c PJ_nocol.c PJ_ob_tran.c PJ_oea.c PJ_tpeqd.c PJ_vandg.c
> PJ_va
> ndg2.c PJ_vandg4.c PJ_wag7.c pj_latlong.c PJ_krovak.c pj_geocent.c
> PJ_healpix.c
> PJ_natearth.c
> cl : Command line warning D9002 : ignoring unknown option '/QxSSE4.1'
> cl : Command line warning D9002 : ignoring unknown option '/Qipo'
> aasincos.c
> adjlon.c
> bch2bps.c
> ...
>
> The 'cd src' and call to 'nmake' are in the wrapper makefile.vc.  Next is
> some output from VS 2010.  After that is the rogue 'cl'.  The build goes on
> to do all the things that I expect, including the 'lib' and 'xilink' calls.  
> But I need the source files to be built with the 'icl' command, not 'cl'.  
> What am I missing?  Where is this 'cl' being called from?
>
> Thanks for your time,
> Lance

_______________________________________________
Proj mailing list
[hidden email]
http://lists.maptools.org/mailman/listinfo/proj
Reply | Threaded
Open this post in threaded view
|

Re: building proj4

Wellspring, Lance
That did the trick, thanks!

-----Original Message-----
From: [hidden email] [mailto:[hidden email]] On Behalf Of Eric Miller
Sent: Thursday, April 05, 2012 11:47 AM
To: [hidden email]
Subject: Re: [Proj] building proj4

I think if you replace all "cl" and "link" commands in the makefiles with $(CC) and $(LINK), respectively, and then set the environment variables to "icl.exe" and "xilink.exe", respectively, then it should work.  The src/makefile.vc is relying on inference rules to create "azimuthal", "conic", etc.  So, to satisfy those build rules, nmake uses whatever $(CC) command is defined.
--

Eric G. Miller
Software Developer
CA Dept. of Fish & Game


>>> On 4/5/2012 at  7:25 AM, "Wellspring, Lance"
>>> <[hidden email]>
wrote:

> Hello all,
>
> I needed a 64 bit version of proj4 and was able to build it from
> source on
> Win7 using the VS 2010 command line compiler.  My application then
> successfully used this custom build.
>
> However, I now have a need to build proj4 using Intel Integrated
> Performance Primitives (IPP).  This basically entails changing all
> uses of 'cl' to 'icl', and uses of 'link' to 'xilink', and then of
> course adding whatever options I need.  Intel IPP works basically as a
> plugin to VS 2010 (as I'm using it), adding an Intel compiler mode to the VS 2010 command line compiler.
>
> My problem is  even though I changed all uses of 'cl' to 'icl' in
> 'Proj\src\makefile.vc', when calling 'nmake /f Proj\makefile.vc' it
> still uses 'cl' in some cases.  I cannot seem to find where these additional 'cl'
> calls are being made from so that I can change them.  Here is the
> initial output of the build, where the first rogue 'cl' is called:
>
> C:\PROJ\proj-4.8.0>nmake /f makefile.vc
>
> Microsoft (R) Program Maintenance Utility Version 10.00.30319.01
> Copyright (C) Microsoft Corporation.  All rights reserved.
>
>         cd src
>         nmake /f makefile.vc
>
> Microsoft (R) Program Maintenance Utility Version 10.00.30319.01
> Copyright (C) Microsoft Corporation.  All rights reserved.
>
>         cl /nologo -I. -DPROJ_LIB=\"C:\PROJ\SHARE\"  -DHAVE_STRERROR=1
> /nologo / MD /O2 /Oi /Ot /GS- /fp:precise /GA /QxSSE4.1 /Qipo /c
> aasincos.c adjlon.c bch2b ps.c bchgen.c pj_gauss.c biveval.c dmstor.c
> mk_cheby.c pj_auth.c pj_deriv.c pj_e ll_set.c pj_ellps.c pj_errno.c
> pj_factors.c pj_fwd.c pj_init.c pj_inv.c pj_list.
> c pj_malloc.c pj_mlfn.c pj_msfn.c pj_open_lib.c pj_param.c pj_phi2.c
> pj_pr_list.
> c pj_qsfn.c pj_strerrno.c pj_tsfn.c pj_units.c pj_zpoly1.c rtodms.c
> vector1.c pj _release.c geocent.c pj_transform.c pj_datum_set.c
> pj_datums.c pj_apply_gridshif t.c nad_cvt.c nad_init.c nad_intr.c
> pj_utils.c pj_gridlist.c pj_gridinfo.c proj_ mdist.c pj_mutex.c
> pj_initcache.c pj_ctx.c pj_log.c pj_apply_vgridshift.c PJ_bog gs.c
> PJ_collg.c PJ_crast.c PJ_denoy.c PJ_eck1.c PJ_eck2.c PJ_eck3.c
> PJ_eck4.c PJ _eck5.c PJ_fahey.c PJ_fouc_s.c PJ_gins8.c PJ_gn_sinu.c
> PJ_goode.c PJ_igh.c PJ_ha tano.c PJ_loxim.c PJ_mbt_fps.c PJ_mbtfpp.c
> PJ_mbtfpq.c PJ_moll.c PJ_nell.c PJ_ne ll_h.c PJ_putp2.c PJ_putp3.c
> PJ_putp4p.c PJ_putp5.c PJ_putp6.c PJ_robin.c PJ_sts .c PJ_urm5.c
> PJ_urmfps.c PJ_wag2.c PJ_wag3.c PJ_wink1.c PJ_wink2.c PJ_isea.c PJ_
> aeqd.c PJ_gnom.c PJ_laea.c PJ_mod_ster.c PJ_nsper.c PJ_nzmg.c
> PJ_ortho.c PJ_ster e.c PJ_sterea.c proj_rouss.c PJ_aea.c PJ_bipc.c
> PJ_bonne.c PJ_eqdc.c PJ_imw_p.c PJ_lcc.c PJ_poly.c PJ_rpoly.c
> PJ_sconics.c PJ_lcca.c PJ_cass.c PJ_cc.c PJ_cea.c PJ_eqc.c PJ_gall.c
> PJ_labrd.c PJ_lsat.c PJ_merc.c PJ_mill.c PJ_ocea.c PJ_omerc.c
> PJ_somerc.c PJ_tcc.c PJ_tcea.c PJ_tmerc.c PJ_geos.c PJ_gstmerc.c
> proj_etmerc.c PJ_airy.c PJ_aitoff.c PJ_august.c PJ_bacon.c PJ_chamb.c
> PJ_hammer.c PJ_lagrng.c PJ_larr.c PJ_lask.c PJ_nocol.c PJ_ob_tran.c
> PJ_oea.c PJ_tpeqd.c PJ_vandg.c PJ_va ndg2.c PJ_vandg4.c PJ_wag7.c
> pj_latlong.c PJ_krovak.c pj_geocent.c PJ_healpix.c PJ_natearth.c cl :
> Command line warning D9002 : ignoring unknown option '/QxSSE4.1'
> cl : Command line warning D9002 : ignoring unknown option '/Qipo'
> aasincos.c
> adjlon.c
> bch2bps.c
> ...
>
> The 'cd src' and call to 'nmake' are in the wrapper makefile.vc.  Next
> is some output from VS 2010.  After that is the rogue 'cl'.  The build
> goes on to do all the things that I expect, including the 'lib' and 'xilink' calls.
> But I need the source files to be built with the 'icl' command, not 'cl'.  
> What am I missing?  Where is this 'cl' being called from?
>
> Thanks for your time,
> Lance

_______________________________________________
Proj mailing list
[hidden email]
http://lists.maptools.org/mailman/listinfo/proj




_______________________________________________
Proj mailing list
[hidden email]
http://lists.maptools.org/mailman/listinfo/proj