ports/www/aws/files/aws.gpr.in
John Marino 640e99a0f6 www/aws: Upgrade from 3.1.0.0 => 3.2.0.0
The templates parser was split out from AWS and due to quirk how
GPRBuild interacts with aggregate library projects, linking it as a
separate library was more than challenging.  It would drop a library
exchange file (aws.lexch) in /usr/local/lib/templates_parser during
the linking process.  Ports are not support to touch areas outside of
their work directory -- if they do, builders will notice and fail the
port.  After hours of trying to get GPRLib to behave, I was reduced to
copying the *.ali files over to the work directory and creating a
custom gpr file to make linking legal.  In the process, I noticed AWS
was linking back to work directory (sanity checks don't flag this yet)
so that was fixed the the custom "-R" option that I added to GPRBuild
a couple of years ago.

I had to create a custom aws.gpr file for lib/gnat, and it works really
well.  Currently something like 238 of 243 tests are passing and the
failing ones are socket related and may looking for linux-specific
output in a couple of cases.

* Documentation is now based on Sphinx.
* A fixed package list has replaced the generated one (due to number
  of options, this was a real chore to generate and validate)
* The option to generate only a shared library was removed.  It was
  confusing and not really useful.  It produces static and shared
  libraries by default, and the shared ones can be suppressed optionally.
* The FreeBSD-specific makefile was removed.  The previous issue was
  caused by the way the compiler was built which has since been fixed
* ASIS was added as dependency
* RUN_DEPENDS were defined (they were missing before)
* GNUTLS support was fixed.  It requires version 3 now and does not
  required gcrypt or openssl anymore which indicated a previous problem.

The aws-demos port had some missing files and other problems.  It has
been updated at the same time.  Note that the output directory has
changed from share/examples/aws-demos to share/examples/aws.  A couple
of tests that were broken now build, and a new test was added.

This update comes straight from the latest repositories and was custom
packaged.  The annual Adacore release was about 5 months old.
2014-05-17 21:21:18 +00:00

60 lines
2.3 KiB
Text

with "templates_parser";
with "xmlada";
project AWS is
type AWS_Kind_Type is ("static", "relocatable");
AWS_Kind : AWS_Kind_Type := external ("LIBRARY_TYPE", "static");
for Library_Name use "aws";
for Library_Kind use AWS_Kind;
case AWS_Kind is
when "relocatable" =>
for Source_Dirs use ("../../include/aws.relocatable");
for Library_Dir use "../../lib/aws.relocatable";
for Library_Version use "libaws.so";
when others =>
for Source_Dirs use ("../../include/aws");
for Library_Dir use "../../lib/aws";
end case;
for Externally_Built use "true";
package Linker is
for Linker_Options use ("-L@PREFIX@/lib", "-Wl,-R,@PREFIX@/lib"
@SSL@ , "-lssl", "-lcrypto"
@TLS@ , "-L@PREFIX@/lib/gnutls3", "-Wl,-R,@PREFIX@/lib/gnutls3"
@TLS@ , "-lgnutls"
@LDP@ , "-lldap"
);
end Linker;
package Naming is
@IP4@ for Implementation ("AWS.Net.Std") use "aws-net-std__gnat.adb";
@IP6@ for Implementation ("AWS.Net.Std") use "aws-net-std__ipv6.adb";
@STD@ for Implementation ("AWS.Net.SSL") use "aws-net-ssl__dummy.adb";
@STD@ for Specification ("AWS.Net.SSL.Certificate.Impl")
@STD@ use "aws-net-ssl-certificate-impl__dummy.ads";
@STD@ for Implementation ("AWS.Net.SSL.Certificate.Impl")
@STD@ use "aws-net-ssl-certificate-impl__dummy.adb";
@STD@ for Specification ("SSL.Thin") use "ssl-thin__dummy.ads";
@SSL@ for Implementation ("AWS.Net.SSL") use "aws-net-ssl__openssl.adb";
@SSL@ for Specification ("AWS.Net.SSL.Certificate.Impl")
@SSL@ use "aws-net-ssl-certificate-impl__openssl.ads";
@SSL@ for Implementation ("AWS.Net.SSL.Certificate.Impl")
@SSL@ use "aws-net-ssl-certificate-impl__openssl.adb";
@SSL@ for Specification ("SSL.Thin") use "ssl-thin__openssl.ads";
@TLS@ for Implementation ("AWS.Net.SSL") use "aws-net-ssl__gnutls.adb";
@TLS@ for Specification ("AWS.Net.SSL.Certificate.Impl")
@TLS@ use "aws-net-ssl-certificate-impl__gnutls.ads";
@TLS@ for Implementation ("AWS.Net.SSL.Certificate.Impl")
@TLS@ use "aws-net-ssl-certificate-impl__gnutls.adb";
@TLS@ for Specification ("SSL.Thin") use "ssl-thin__gnutls.ads";
end Naming;
end AWS;