diff options
author | charlie5 | 2015-07-26 05:19:44 +1000 |
---|---|---|
committer | charlie5 | 2015-07-26 05:19:44 +1000 |
commit | 8dc38bc83e670b0d4dd7ce08fa0f747f66a9b828 (patch) | |
tree | 195847e8adf14262b49d8e560f9438c73045b469 | |
parent | af73c81bece05044d0083323e00a7d4e5077677d (diff) | |
download | aur-8dc38bc83e670b0d4dd7ce08fa0f747f66a9b828.tar.gz |
Adde Makefile.archy.
-rw-r--r-- | .SRCINFO | 4 | ||||
-rw-r--r-- | Makefile.archy | 97 | ||||
-rw-r--r-- | PKGBUILD | 48 | ||||
-rw-r--r-- | patch-gnat_targparm | 302 |
4 files changed, 443 insertions, 8 deletions
@@ -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 @@ -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; + |