summaryrefslogtreecommitdiff
path: root/lang/TenDRA/files/patch-install
diff options
context:
space:
mode:
Diffstat (limited to 'lang/TenDRA/files/patch-install')
-rw-r--r--lang/TenDRA/files/patch-install154
1 files changed, 142 insertions, 12 deletions
diff --git a/lang/TenDRA/files/patch-install b/lang/TenDRA/files/patch-install
index 2d0a32c6745b..d147fe8c9288 100644
--- a/lang/TenDRA/files/patch-install
+++ b/lang/TenDRA/files/patch-install
@@ -1,12 +1,142 @@
---- mk/base/tendra.install.mk.orig Mon Mar 31 10:00:01 2003
-+++ mk/base/tendra.install.mk Mon May 12 21:20:53 2003
-@@ -60,6 +60,9 @@
- for i in ${.OBJDIR}.api/*.h; do \
- ${INSTALL} $$i ${INSTALL_PREFIX}/lib/include/${API}.api; \
- done
-+ for i in `${FIND} ${.OBJDIR}.api/ -type d -mindepth 1` ; do \
-+ ${CP} -pR $$i ${INSTALL_PREFIX}/lib/include/${API}.api; \
-+ done
- for i in ${.OBJDIR:C/apis/apis\/shared/}.api/*.h; do \
- ${INSTALL} $$i ${INSTALL_PREFIX}/lib/include/shared/${API}.api; \
- done
+Index: mk/base/tendra.install.mk
+===================================================================
+RCS file: /usr/home/stefan/tendra/cvsup/tendra/mk/base/tendra.install.mk,v
+retrieving revision 1.19
+diff -u -r1.19 tendra.install.mk
+--- mk/base/tendra.install.mk 18 Aug 2003 04:35:26 -0000 1.19
++++ mk/base/tendra.install.mk 19 Aug 2003 14:23:00 -0000
+@@ -21,7 +21,6 @@
+
+ .if defined(API)
+ INSTALL_TARGETS+= install-api
+-INSTALL_SUB+= lib/include/${API}.api lib/include/shared/${API}.api
+ .endif
+
+ .if defined(INSTALL_ENV)
+@@ -70,14 +69,9 @@
+
+ # lib/apis: our api files.
+ install-api:
+- for i in ${.OBJDIR}.api/*.h; do \
+- ${BIN_INSTALL} $$i ${INSTALL_PREFIX}/lib/include/${API}.api; \
+- done
+- for i in ${.OBJDIR:C/apis/apis\/shared/}.api/*.h; do \
+- ${BIN_INSTALL} $$i ${INSTALL_PREFIX}/lib/include/shared/${API}.api; \
+- done
+- ${BIN_INSTALL} ${.OBJDIR:C/apis/apis\/lib/}/${API}.tl \
+- ${INSTALL_PREFIX}/lib
++ env MAKEOBJDIR=${OBJ_DIR}.api INSTALL=${BIN_INSTALL} \
++ MKDIR=${BIN_MKDIR} ARGS_MKDIR=${ARGS_MKDIR} \
++ INSTALL_PREFIX=${INSTALL_PREFIX} make install
+
+ # lib/env: our environment files.
+ install-env:
+Index: src/tools/tspec/makefile.c
+===================================================================
+RCS file: /usr/home/stefan/tendra/cvsup/tendra/src/tools/tspec/makefile.c,v
+retrieving revision 1.3
+diff -u -r1.3 makefile.c
+--- src/tools/tspec/makefile.c 12 Dec 2002 05:54:55 -0000 1.3
++++ src/tools/tspec/makefile.c 10 Jun 2003 12:36:12 -0000
+@@ -71,10 +71,10 @@
+ */
+
+ static boolean
+-need_info(info *i, char *api)
++need_info(info *i, char *api, boolean lax)
+ {
+ if (restrict_depth && !streq (api, i->api)) return (0);
+- return (i->implemented && i->tokens && i->src);
++ return (i->implemented && (lax || (i->tokens && i->src)));
+ }
+
+
+@@ -95,6 +95,8 @@
+ char *api2 = hack_name (api, "_Aa0");
+ int li = output_incl_len;
+ int ls = output_src_len;
++ hash_table *subdirs = make_hash_table("Subdirs");
++ int i;
+
+ /* Open output file */
+ nm = (whole ? MAKEFILE_API : MAKEFILE);
+@@ -135,11 +137,47 @@
+ }
+ IGNORE fputs ("SHELL=/bin/sh\n\n", output);
+
++ /* Print all headers we want to install */
++ IGNORE fprintf (output, "HEADERS=");
++ for (e = f ; e != null ; e = e->next) {
++ info *i = e->obj->u.u_info;
++ char *p;
++ object *o;
++
++ if (!need_info(i, api, 1))
++ continue;
++
++ if (i->file == NULL || strstr(i->file, "dummy") != NULL ||
++ i->api == NULL || strstr(i->api, "dummy") != NULL)
++ continue;
++
++ IGNORE fprintf (output, "\\\n %s", i->incl + ls);
++
++ buffer[0] = '\0';
++ IGNORE strncat(buffer, i->incl + ls, buffsize);
++ if ((p = strrchr(buffer, '/')) != NULL) {
++ *p = '\0';
++ /* Add the directory if it isn't in the subdirs hash table yet */
++ if (search_hash(subdirs, buffer, 0) == NULL) {
++ p = xalloc(strlen(buffer) + 1);
++ IGNORE strcpy(p, buffer);
++ o = make_object(p, TYPE_VOID);
++ IGNORE add_hash(subdirs, o, 0);
++ }
++ }
++ }
++
++ /* Print the list of subdirectories we have to create */
++ IGNORE fputs ("\n\nDIRS=", output);
++ for (i = 0; i < sizeof (subdirs->array) / sizeof (*subdirs->array); i++)
++ for (e = subdirs->array[i]; e != null; e = e->next)
++ IGNORE fprintf (output, "\\\n %s", e->obj->name);
++
+ /* Print the list of files */
+- IGNORE fputs ("JFILES=", output);
++ IGNORE fputs ("\n\nJFILES=", output);
+ for (e = f ; e != null ; e = e->next) {
+ info *i = e->obj->u.u_info;
+- if (need_info (i, api)) {
++ if (need_info (i, api, 0)) {
+ int m;
+ char *a = i->api;
+ if (strneq (a, "shared/", 7)) a += 7;
+@@ -159,7 +197,7 @@
+ /* Print the construction for each file */
+ for (e = f ; e != null ; e = e->next) {
+ info *i = e->obj->u.u_info;
+- if (need_info (i, api)) {
++ if (need_info (i, api, 0)) {
+ int m;
+ char *a = i->api;
+ if (strneq (a, "shared/", 7)) a += 7;
+@@ -192,7 +230,19 @@
+
+ /* End of makefile */
+ IGNORE fputs ("clean :\n\trm -f ${JFILES}\n\n", output);
+- IGNORE fputs ("clobber : clean\n\trm -f ${LIB}\n", output);
++ IGNORE fputs ("clobber : clean\n\trm -f ${LIB}\n\n", output);
++
++ IGNORE fprintf (output, "install : \n"
++ ".for i in ${DIRS}\n"
++ "\t${MKDIR} ${ARGS_MKDIR} ${INSTALL_PREFIX}/lib/include/${i}\n"
++ ".endfor\n"
++ ".for i in ${HEADERS}\n"
++ "\t${INSTALL} ../${i} ${INSTALL_PREFIX}/lib/include/"
++ "${i:H}\n"
++ ".endfor\n"
++ "\t${INSTALL} ../lib/%s/%s.tl ${INSTALL_PREFIX}/lib\n",
++ api, api);
++
+ IGNORE fclose (output);
+ return;
+ }