summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorcharlie52015-07-26 05:19:44 +1000
committercharlie52015-07-26 05:19:44 +1000
commit8dc38bc83e670b0d4dd7ce08fa0f747f66a9b828 (patch)
tree195847e8adf14262b49d8e560f9438c73045b469
parentaf73c81bece05044d0083323e00a7d4e5077677d (diff)
downloadaur-8dc38bc83e670b0d4dd7ce08fa0f747f66a9b828.tar.gz
Adde Makefile.archy.
-rw-r--r--.SRCINFO4
-rw-r--r--Makefile.archy97
-rw-r--r--PKGBUILD48
-rw-r--r--patch-gnat_targparm302
4 files changed, 443 insertions, 8 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 6d4b334c568d..327a848880d8 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -8,7 +8,11 @@ pkgbase = gprbuild
depends = gcc-ada
depends = xmlada
source = http://mirrors.cdn.adacore.com/art/3c2da2f1d3335d39bc9ebb65a3a58264ddac6d41
+ source = Makefile.archy
+ source = patch-gnat_targparm
sha256sums = 5d5bbc8c57075250c264e2f15d9949383450ac696eb8a90803c2a36b55ecd0e2
+ sha256sums = 34a94c0c0f4c8a1a4e1fa047da1b5df5
+ sha256sums = bf8d51ad430aefde7b93c5da19ee9755
pkgname = gprbuild
diff --git a/Makefile.archy b/Makefile.archy
new file mode 100644
index 000000000000..1f650f947346
--- /dev/null
+++ b/Makefile.archy
@@ -0,0 +1,97 @@
+.PHONY: all
+.PHONY: generate_sources
+
+AFLAGS= -gnat12 -gnaty -gnatQ -O2 -gnatpn -gnatws -g1 -j${PROCESSORS}
+
+COBJS= obj/link.o obj/gprbuild_dummies.o
+
+LOOK= -aI${.CURDIR}/gnat -aI${.CURDIR}/gen_src \
+ -aL${PREFIX}/lib/xmlada/static -aI${PREFIX}/include/xmlada
+LARGS= -largs ${.CURDIR}/obj/link.o \
+ -largs ${.CURDIR}/obj/gprbuild_dummies.o \
+ -largs ${PREFIX}/lib/xmlada/static/libxmlada_dom.a \
+ -largs ${PREFIX}/lib/xmlada/static/libxmlada_input_sources.a \
+ -largs ${PREFIX}/lib/xmlada/static/libxmlada_sax.a \
+ -largs ${PREFIX}/lib/xmlada/static/libxmlada_schema.a \
+ -largs ${PREFIX}/lib/xmlada/static/libxmlada_unicode.a
+
+GENDIR= gen_src
+GEN_SRCS= ${GENDIR}/snames.adb ${GENDIR}/snames.ads
+DOCSDIR= ${PREFIX}/share/doc/gprbuild
+
+all: gprbuild
+
+install:
+ mkdir -p ${DESTDIR}${PREFIX}/bin \
+ ${DESTDIR}${PREFIX}/libexec/gprbuild \
+ ${DESTDIR}${PREFIX}/share/gpr \
+ ${DESTDIR}${PREFIX}/share/gprconfig
+ ${BSD_INSTALL_PROGRAM} ${.CURDIR}/obj/gprclean \
+ ${.CURDIR}/obj/gprinstall \
+ ${.CURDIR}/obj/gprconfig \
+ ${.CURDIR}/obj/gprslave \
+ ${.CURDIR}/obj/gprbuild ${DESTDIR}${PREFIX}/bin
+ ${BSD_INSTALL_PROGRAM} ${.CURDIR}/obj/gprbind \
+ ${.CURDIR}/obj/gprlib ${DESTDIR}${PREFIX}/libexec/gprbuild
+ ${BSD_INSTALL_DATA} ${.CURDIR}/share/_default.gpr \
+ ${DESTDIR}${PREFIX}/share/gpr
+ ${BSD_INSTALL_DATA} ${.CURDIR}/share/gprconfig/* \
+ ${DESTDIR}${PREFIX}/share/gprconfig
+
+install-docs:
+ mkdir -p ${DESTDIR}${DOCSDIR}/html ${DESTDIR}${DOCSDIR}/txt \
+ ${DESTDIR}${DOCSDIR}/pdf
+ ${BSD_INSTALL_DATA} ${.CURDIR}/doc/txt/gprbuild_ug.txt \
+ ${DESTDIR}${DOCSDIR}/txt
+ ${BSD_INSTALL_DATA} ${.CURDIR}/doc/pdf/gprbuild_ug.pdf \
+ ${DESTDIR}${DOCSDIR}/pdf
+ cp -r ${.CURDIR}/doc/html/* ${DESTDIR}${DOCSDIR}/html
+ rm -rf ${DESTDIR}${DOCSDIR}/html/_sources
+ ${BSD_INSTALL_DATA} ${.CURDIR}/doc/*.png \
+ ${DESTDIR}${DOCSDIR}/html
+
+gprclean: src/gprclean-main.adb ${GEN_SRCS} ${COBJS}
+ gnatmake -o ${.TARGET} ${AFLAGS} ${LOOK} \
+ ${.CURDIR}/src/gprclean-main.adb ${LARGS}
+
+gprbind: gprclean src/gprslave.adb ${GEN_SRCS} ${COBJS}
+ gnatmake -o ${.TARGET} ${AFLAGS} ${LOOK} \
+ ${.CURDIR}/src/gprbind.adb ${LARGS}
+
+gprlib: gprbind src/gprslave.adb ${GEN_SRCS} ${COBJS}
+ gnatmake -o ${.TARGET} ${AFLAGS} ${LOOK} \
+ ${.CURDIR}/src/gprlib.adb ${LARGS}
+
+gprslave: gprlib src/gprslave.adb ${GEN_SRCS} ${COBJS}
+ gnatmake -o ${.TARGET} ${AFLAGS} ${LOOK} \
+ ${.CURDIR}/src/gprslave.adb ${LARGS}
+
+gprinstall: gprslave src/gprinstall-main.adb ${GEN_SRCS} ${COBJS}
+ gnatmake -o ${.TARGET} ${AFLAGS} ${LOOK} \
+ ${.CURDIR}/src/gprinstall-main.adb ${LARGS}
+
+gprconfig: gprinstall src/gprconfig-main.adb ${GEN_SRCS} ${COBJS}
+ gnatmake -o ${.TARGET} ${AFLAGS} ${LOOK} \
+ ${.CURDIR}/src/gprconfig-main.adb ${LARGS}
+
+gprbuild: gprconfig src/gprbuild-main.adb ${GEN_SRCS} ${COBJS}
+ gnatmake -o ${.TARGET} ${AFLAGS} ${LOOK} \
+ ${.CURDIR}/src/gprbuild-main.adb ${LARGS}
+
+obj/link.o: gnat/link.c
+ gcc -c -o ${.CURDIR}/${.TARGET} ${.ALLSRC}
+
+obj/gprbuild_dummies.o: src/gprbuild_dummies.c
+ gcc -c -o ${.CURDIR}/${.TARGET} ${.ALLSRC}
+
+generate_sources:
+ mkdir -p ${.CURDIR}/${GENDIR}
+ (cd ${.CURDIR}/gnat && cp xsnamest.adb xutil.* snames.adb-tmpl \
+ snames.ads-tmpl snames.h-tmpl ../${GENDIR})
+ (cd ${.CURDIR}/${GENDIR} && \
+ gnatmake -gnatf -gnatwae -gnatyg -gnatyS xsnamest && \
+ ./xsnamest && \
+ mv snames.ns snames.ads && \
+ mv snames.nb snames.adb)
+
+${GEN_SRCS}: generate_sources
diff --git a/PKGBUILD b/PKGBUILD
index 6a165b0a337a..e6c9ca22e189 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -23,24 +23,56 @@ url="http://www.adacore.com/gnatpro/toolsuite/gprbuild/"
# "patch-src_gprinstall-install.adb"
# "extrapatch-src_gprslave.adb")
-source=("http://mirrors.cdn.adacore.com/art/3c2da2f1d3335d39bc9ebb65a3a58264ddac6d41")
+source=("http://mirrors.cdn.adacore.com/art/3c2da2f1d3335d39bc9ebb65a3a58264ddac6d41"
+ "Makefile.archy"
+ "patch-gnat_targparm"
+)
-sha256sums=('5d5bbc8c57075250c264e2f15d9949383450ac696eb8a90803c2a36b55ecd0e2')
+sha256sums=('5d5bbc8c57075250c264e2f15d9949383450ac696eb8a90803c2a36b55ecd0e2'
+ '34a94c0c0f4c8a1a4e1fa047da1b5df5'
+ 'bf8d51ad430aefde7b93c5da19ee9755'
+)
+
+
+
+prepare()
+{
+ WRKSRC=$srcdir/$pkgname-gpl-$pkgver-src
+ CONHOST=Linux
+
+
+ cp $srcdir/Makefile.archy ${WRKSRC}/Makefile
+
+# sed -i "" -e "s,@AUXPREFIX@,${PREFIX}/gcc5-aux," \
+# ${WRKSRC}/share/gprconfig/compilers.xml
+
+ sed -e 's|@host@|${CONHOST}|' \
+ ${WRKSRC}/src/gprconfig-sdefault.ads.in > \
+ ${WRKSRC}/src/gprconfig-sdefault.ads
+
+# mv ${WRKSRC}/share/gprconfig/*.orig ${WRKSRC}/obj-cov
+
+ cd $pkgname-gpl-$pkgver-src
+
+ patch -p0 -i ../patch-gnat_targparm
+}
+
build() {
- export OS=unix
+# export OS=unix
+
cd $pkgname-gpl-$pkgver-src
- rm -fr gnat
- cp -r ../gnat .
+# rm -fr gnat
+# cp -r ../gnat .
- find -name '*.adb' -print -exec sed -i.bak 's/Try_Help;//g' {} \;
+# find -name '*.adb' -print -exec sed -i.bak 's/Try_Help;//g' {} \;
- rm -fr src/rewrite_data.ads
- rm -fr src/rewrite_data.adb
+# rm -fr src/rewrite_data.ads
+# rm -fr src/rewrite_data.adb
# patch -p0 -i ../patch-src_gpr__version.adb
# patch -p0 -i ../extrapatch-src_gprbuild-main.adb
diff --git a/patch-gnat_targparm b/patch-gnat_targparm
new file mode 100644
index 000000000000..b52527689a96
--- /dev/null
+++ b/patch-gnat_targparm
@@ -0,0 +1,302 @@
+These restriction pragmas are not yet supported on FSF GNAT 5:
+ No_Specification_Of_Aspect
+ No_Use_Of_Attribute
+ No_Use_Of_Pragma
+
+--- gnat/targparm.ads.orig 2015-05-06 11:08:38 UTC
++++ gnat/targparm.ads
+@@ -615,53 +615,28 @@ package Targparm is
+ -- selected component with Sloc value System_Location and given Prefix
+ -- (Pre) and Selector (Sel) values.
+
+- type Set_NOD_Type is access procedure (Unit : Node_Id);
++ type Set_RND_Type is access procedure (Unit : Node_Id);
+ -- Parameter type for Get_Target_Parameters that records a Restriction
+ -- No_Dependence for the given unit (identifier or selected component).
+
+- type Set_NSA_Type is access procedure (Asp : Name_Id; OK : out Boolean);
+- -- Parameter type for Get_Target_Parameters that records a Restriction
+- -- No_Specification_Of_Aspect. Asp is the aspect name. OK is set True
+- -- if this is an OK aspect name, and False if it is not an aspect name.
+-
+- type Set_NUA_Type is access procedure (Attr : Name_Id; OK : out Boolean);
+- -- Parameter type for Get_Target_Parameters that records a Restriction
+- -- No_Use_Of_Attribute. Attr is the attribute name. OK is set True if
+- -- this is an OK attribute name, and False if it is not an attribute name.
+-
+- type Set_NUP_Type is access procedure (Prag : Name_Id; OK : out Boolean);
+- -- Parameter type for Get_Target_Parameters that records a Restriction
+- -- No_Use_Of_Pragma. Prag is the pragma name. OK is set True if this is
+- -- an OK pragma name, and False if it is not a recognized pragma name.
+-
+ procedure Get_Target_Parameters
+ (System_Text : Source_Buffer_Ptr;
+ Source_First : Source_Ptr;
+ Source_Last : Source_Ptr;
+ Make_Id : Make_Id_Type := null;
+ Make_SC : Make_SC_Type := null;
+- Set_NOD : Set_NOD_Type := null;
+- Set_NSA : Set_NSA_Type := null;
+- Set_NUA : Set_NUA_Type := null;
+- Set_NUP : Set_NUP_Type := null);
+- -- Called at the start of execution to obtain target parameters from the
+- -- source of package System. The parameters provide the source text to be
+- -- scanned (in System_Text (Source_First .. Source_Last)). If the three
+- -- subprograms Make_Id, Make_SC, and Set_NOD are left at their default
+- -- value of null, Get_Target_Parameters will ignore pragma Restrictions
+- -- (No_Dependence) lines; otherwise it will use these three subprograms to
+- -- record them. Similarly, if Set_NUP is left at its default value of null,
+- -- then any occurrences of pragma Restrictions (No_Use_Of_Pragma => XXX)
+- -- will be ignored; otherwise it will use this procedure to record the
+- -- pragma. Similarly for the NSA and NUA cases.
++ Set_RND : Set_RND_Type := null);
++ -- Called at the start of execution to obtain target parameters from
++ -- the source of package System. The parameters provide the source
++ -- text to be scanned (in System_Text (Source_First .. Source_Last)).
++ -- if the three subprograms are left at their default value of null,
++ -- Get_Target_Parameters will ignore pragma Restrictions No_Dependence
++ -- lines, otherwise it will use these three subprograms to record them.
+
+ procedure Get_Target_Parameters
+ (Make_Id : Make_Id_Type := null;
+ Make_SC : Make_SC_Type := null;
+- Set_NOD : Set_NOD_Type := null;
+- Set_NSA : Set_NSA_Type := null;
+- Set_NUA : Set_NUA_Type := null;
+- Set_NUP : Set_NUP_Type := null);
++ Set_RND : Set_RND_Type := null);
+ -- This version reads in system.ads using Osint. The idea is that the
+ -- caller uses the first version if they have to read system.ads anyway
+ -- (e.g. the compiler) and uses this simpler interface if system.ads is
+--- gnat/targparm.adb.orig 2015-05-06 11:08:38 UTC
++++ gnat/targparm.adb
+@@ -154,10 +154,7 @@ package body Targparm is
+ procedure Get_Target_Parameters
+ (Make_Id : Make_Id_Type := null;
+ Make_SC : Make_SC_Type := null;
+- Set_NOD : Set_NOD_Type := null;
+- Set_NSA : Set_NSA_Type := null;
+- Set_NUA : Set_NUA_Type := null;
+- Set_NUP : Set_NUP_Type := null)
++ Set_RND : Set_RND_Type := null)
+ is
+ Text : Source_Buffer_Ptr;
+ Hi : Source_Ptr;
+@@ -184,10 +181,7 @@ package body Targparm is
+ Source_Last => Hi,
+ Make_Id => Make_Id,
+ Make_SC => Make_SC,
+- Set_NOD => Set_NOD,
+- Set_NSA => Set_NSA,
+- Set_NUA => Set_NUA,
+- Set_NUP => Set_NUP);
++ Set_RND => Set_RND);
+ end Get_Target_Parameters;
+
+ -- Version where caller supplies system.ads text
+@@ -198,10 +192,7 @@ package body Targparm is
+ Source_Last : Source_Ptr;
+ Make_Id : Make_Id_Type := null;
+ Make_SC : Make_SC_Type := null;
+- Set_NOD : Set_NOD_Type := null;
+- Set_NSA : Set_NSA_Type := null;
+- Set_NUA : Set_NUA_Type := null;
+- Set_NUP : Set_NUP_Type := null)
++ Set_RND : Set_RND_Type := null)
+ is
+ P : Source_Ptr;
+ -- Scans source buffer containing source of system.ads
+@@ -212,48 +203,6 @@ package body Targparm is
+ Result : Boolean;
+ -- Records boolean from system line
+
+- OK : Boolean;
+- -- Status result from Set_NUP/NSA/NUA call
+-
+- PR_Start : Source_Ptr;
+- -- Pointer to ( following pragma Restrictions
+-
+- procedure Collect_Name;
+- -- Scan a name starting at System_Text (P), and put Name in Name_Buffer,
+- -- with Name_Len being length, folded to lower case. On return, P points
+- -- just past the last character (which should be a right paren).
+-
+- ------------------
+- -- Collect_Name --
+- ------------------
+-
+- procedure Collect_Name is
+- begin
+- Name_Len := 0;
+- loop
+- if System_Text (P) in 'a' .. 'z'
+- or else
+- System_Text (P) = '_'
+- or else
+- System_Text (P) in '0' .. '9'
+- then
+- Name_Buffer (Name_Len + 1) := System_Text (P);
+-
+- elsif System_Text (P) in 'A' .. 'Z' then
+- Name_Buffer (Name_Len + 1) :=
+- Character'Val (Character'Pos (System_Text (P)) + 32);
+-
+- else
+- exit;
+- end if;
+-
+- P := P + 1;
+- Name_Len := Name_Len + 1;
+- end loop;
+- end Collect_Name;
+-
+- -- Start of processing for Get_Target_Parameters
+-
+ begin
+ if Parameters_Obtained then
+ return;
+@@ -312,9 +261,6 @@ package body Targparm is
+
+ elsif System_Text (P .. P + 20) = "pragma Restrictions (" then
+ P := P + 21;
+- PR_Start := P - 1;
+-
+- -- Boolean restrictions
+
+ Rloop : for K in All_Boolean_Restrictions loop
+ declare
+@@ -339,9 +285,7 @@ package body Targparm is
+ null;
+ end loop Rloop;
+
+- -- Restrictions taking integer parameter
+-
+- Ploop : for K in Integer_Parameter_Restrictions loop
++ Ploop : for K in All_Parameter_Restrictions loop
+ declare
+ Rname : constant String :=
+ All_Parameter_Restrictions'Image (K);
+@@ -456,119 +400,23 @@ package body Targparm is
+ P := P + 1;
+ end loop;
+
+- Set_NOD (Unit);
++ Set_RND (Unit);
+ goto Line_Loop_Continue;
+ end;
+-
+- -- No_Specification_Of_Aspect case
+-
+- elsif System_Text (P .. P + 29) = "No_Specification_Of_Aspect => "
+- then
+- P := P + 30;
+-
+- -- Skip this processing (and simply ignore the pragma), if
+- -- caller did not supply the subprogram we need to process
+- -- such lines.
+-
+- if Set_NSA = null then
+- goto Line_Loop_Continue;
+- end if;
+-
+- -- We have scanned
+- -- "pragma Restrictions (No_Specification_Of_Aspect =>"
+-
+- Collect_Name;
+-
+- if System_Text (P) /= ')' then
+- goto Bad_Restrictions_Pragma;
+-
+- else
+- Set_NSA (Name_Find, OK);
+-
+- if OK then
+- goto Line_Loop_Continue;
+- else
+- goto Bad_Restrictions_Pragma;
+- end if;
+- end if;
+-
+- -- No_Use_Of_Attribute case
+-
+- elsif System_Text (P .. P + 22) = "No_Use_Of_Attribute => " then
+- P := P + 23;
+-
+- -- Skip this processing (and simply ignore No_Use_Of_Attribute
+- -- lines) if caller did not supply the subprogram we need to
+- -- process such lines.
+-
+- if Set_NUA = null then
+- goto Line_Loop_Continue;
+- end if;
+-
+- -- We have scanned
+- -- "pragma Restrictions (No_Use_Of_Attribute =>"
+-
+- Collect_Name;
+-
+- if System_Text (P) /= ')' then
+- goto Bad_Restrictions_Pragma;
+-
+- else
+- Set_NUA (Name_Find, OK);
+-
+- if OK then
+- goto Line_Loop_Continue;
+- else
+- goto Bad_Restrictions_Pragma;
+- end if;
+- end if;
+-
+- -- No_Use_Of_Pragma case
+-
+- elsif System_Text (P .. P + 19) = "No_Use_Of_Pragma => " then
+- P := P + 20;
+-
+- -- Skip this processing (and simply ignore No_Use_Of_Pragma
+- -- lines) if caller did not supply the subprogram we need to
+- -- process such lines.
+-
+- if Set_NUP = null then
+- goto Line_Loop_Continue;
+- end if;
+-
+- -- We have scanned
+- -- "pragma Restrictions (No_Use_Of_Pragma =>"
+-
+- Collect_Name;
+-
+- if System_Text (P) /= ')' then
+- goto Bad_Restrictions_Pragma;
+-
+- else
+- Set_NUP (Name_Find, OK);
+-
+- if OK then
+- goto Line_Loop_Continue;
+- else
+- goto Bad_Restrictions_Pragma;
+- end if;
+- end if;
+ end if;
+
+ -- Here if unrecognizable restrictions pragma form
+
+- <<Bad_Restrictions_Pragma>>
+-
+ Set_Standard_Error;
+ Write_Line
+ ("fatal error: system.ads is incorrectly formatted");
+ Write_Str ("unrecognized or incorrect restrictions pragma: ");
+
+- P := PR_Start;
++ while System_Text (P) /= ')'
++ and then
++ System_Text (P) /= ASCII.LF
+ loop
+- exit when System_Text (P) = ASCII.LF;
+ Write_Char (System_Text (P));
+- exit when System_Text (P) = ')';
+ P := P + 1;
+ end loop;
+