From: Anas Nashif Date: Mon, 5 Nov 2012 19:16:31 +0000 (-0800) Subject: packaging: Initial packaging X-Git-Tag: accepted/tizen/common/20150107.100744~11 X-Git-Url: http://review.tizen.org/git/?p=platform%2Fupstream%2Fmake.git;a=commitdiff_plain;h=cc0e474118bad882d690b23698fede80c06f6ef1 packaging: Initial packaging Change-Id: I39405bca870eafdcb709e2f2f653de626a80ab16 Author: Anas Nashif --- diff --git a/packaging/make-3.79.1-noclock_gettime.patch b/packaging/make-3.79.1-noclock_gettime.patch new file mode 100644 index 0000000..5c94aac --- /dev/null +++ b/packaging/make-3.79.1-noclock_gettime.patch @@ -0,0 +1,11 @@ +--- make-3.80/configure ++++ make-3.80/configure +@@ -6794,7 +6794,7 @@ + fi + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + if test "$ac_cv_search_clock_gettime" = no; then +- for ac_lib in rt posix4; do ++ for ac_lib in posix4; do + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + cat >conftest.$ac_ext <<_ACEOF + #line $LINENO "configure" diff --git a/packaging/make-3.80-getcwd.patch b/packaging/make-3.80-getcwd.patch new file mode 100644 index 0000000..e284f42 --- /dev/null +++ b/packaging/make-3.80-getcwd.patch @@ -0,0 +1,11 @@ +--- make-3.80/make.h.jj 2002-09-11 12:55:44.000000000 -0400 ++++ make-3.80/make.h 2005-03-07 09:24:53.000000000 -0500 +@@ -474,7 +474,7 @@ extern long int lseek (); + #endif /* Not GNU C library or POSIX. */ + + #ifdef HAVE_GETCWD +-# if !defined(VMS) && !defined(__DECC) ++# if !defined(VMS) && !defined(__DECC) && !defined(getcwd) + extern char *getcwd (); + #endif + #else diff --git a/packaging/make-3.80-j8k.patch b/packaging/make-3.80-j8k.patch new file mode 100644 index 0000000..1acd4f9 --- /dev/null +++ b/packaging/make-3.80-j8k.patch @@ -0,0 +1,23 @@ +--- make-3.80/main.c.jj 2002-08-09 21:27:17.000000000 -0400 ++++ make-3.80/main.c 2004-12-13 12:48:25.000000000 -0500 +@@ -1549,6 +1549,20 @@ int main (int argc, char ** argv) + } + } + ++#ifdef PIPE_BUF ++ if (job_slots > PIPE_BUF) ++#elif defined _POSIX_PIPE_BUF ++ if (job_slots > _POSIX_PIPE_BUF) ++#else ++ if (job_slots > 512) ++#endif ++ { ++ error (NILF, ++ _("More parallel jobs (-jN) than this platform can handle requested.")); ++ error (NILF, _("Resetting to single job (-j1) mode.")); ++ job_slots = 1; ++ } ++ + /* If we have >1 slot but no jobserver-fds, then we're a top-level make. + Set up the pipe and install the fds option for our children. */ + diff --git a/packaging/make-3.81-err-reporting.patch b/packaging/make-3.81-err-reporting.patch new file mode 100644 index 0000000..bbab96d --- /dev/null +++ b/packaging/make-3.81-err-reporting.patch @@ -0,0 +1,151 @@ +--- make-3.80/misc.c.jj 2002-09-12 18:15:58.000000000 -0400 ++++ make-3.80/misc.c 2005-08-22 05:46:05.000000000 -0400 +@@ -311,17 +311,31 @@ strerror (errnum) + /* Print an error message from errno. */ + ++void ++perror_with_name_err (const char *str, const char *name, int errnum) ++{ ++ error (NILF, _("%s%s: %s"), str, name, strerror (errnum)); ++} ++ + void + perror_with_name (const char *str, const char *name) + { +- error (NILF, _("%s%s: %s"), str, name, strerror (errno)); ++ perror_with_name_err (str, name, errno); + } + + /* Print an error message from errno and exit. */ + ++void ++pfatal_with_name_err (const char *name, int errnum) ++{ ++ fatal (NILF, _("%s: %s"), name, strerror (errnum)); ++ ++ /* NOTREACHED */ ++} ++ + void + pfatal_with_name (const char *name) + { +- fatal (NILF, _("%s: %s"), name, strerror (errno)); ++ pfatal_with_name_err (name, errno); + + /* NOTREACHED */ + } + +--- make-3.81/main.c.jj 2006-05-23 12:51:25.000000000 +0200 ++++ make-3.81/main.c 2006-05-23 12:50:48.000000000 +0200 +@@ -1502,13 +1502,13 @@ + strcat (template, DEFAULT_TMPFILE); + outfile = open_tmpfile (&stdin_nm, template); + if (outfile == 0) +- pfatal_with_name (_("fopen (temporary file)")); ++ pfatal_with_name_err (_("fopen (temporary file)"), errno); + while (!feof (stdin) && ! ferror (stdin)) + { + char buf[2048]; + unsigned int n = fread (buf, 1, sizeof (buf), stdin); + if (n > 0 && fwrite (buf, 1, n, outfile) != n) +- pfatal_with_name (_("fwrite (temporary file)")); ++ pfatal_with_name_err (_("fwrite (temporary file)"), errno); + } + (void) fclose (outfile); + +@@ -1681,7 +1681,7 @@ + else if ((job_rfd = dup (job_fds[0])) < 0) + { + if (errno != EBADF) +- pfatal_with_name (_("dup jobserver")); ++ pfatal_with_name_err (_("dup jobserver"), errno); + + error (NILF, + _("warning: jobserver unavailable: using -j1. Add `+' to parent make rule.")); +@@ -1721,7 +1721,7 @@ + char c = '+'; + + if (pipe (job_fds) < 0 || (job_rfd = dup (job_fds[0])) < 0) +- pfatal_with_name (_("creating jobs pipe")); ++ pfatal_with_name_err (_("creating jobs pipe"), errno); + + /* Every make assumes that it always has one job it can run. For the + submakes it's the token they were given by their parent. For the +@@ -1736,7 +1736,7 @@ + + EINTRLOOP (r, write (job_fds[1], &c, 1)); + if (r != 1) +- pfatal_with_name (_("init jobserver pipe")); ++ pfatal_with_name_err (_("init jobserver pipe"), errno); + } + + /* Fill in the jobserver_fds struct for our children. */ +@@ -2151,8 +2151,8 @@ + /* If there is a temp file from reading a makefile from stdin, get rid of + it now. */ + if (stdin_nm && unlink (stdin_nm) < 0 && errno != ENOENT) +- perror_with_name (_("unlink (temporary file): "), stdin_nm); ++ perror_with_name_err (_("unlink (temporary file): "), stdin_nm, errno); + + { + int status; + +--- make-3.81/make.h.jj 2006-05-23 12:54:45.000000000 +0200 ++++ make-3.81/make.h 2006-05-23 12:55:00.000000000 +0200 +@@ -414,6 +414,8 @@ + extern void log_working_directory PARAMS ((int)); + extern void pfatal_with_name PARAMS ((const char *)) __attribute__ ((noreturn)); + extern void perror_with_name PARAMS ((const char *, const char *)); ++extern void pfatal_with_name_err PARAMS ((const char *, int errnum)) __attribute__ ((noreturn)); ++extern void perror_with_name_err PARAMS ((const char *, const char *, int errnum)); + extern char *savestring PARAMS ((const char *, unsigned int)); + extern char *concat PARAMS ((const char *, const char *, const char *)); + extern char *xmalloc PARAMS ((unsigned int)); + +--- make-3.81/job.c.jj 2006-05-23 13:01:35.000000000 +0200 ++++ make-3.81/job.c 2006-05-23 13:50:44.000000000 +0200 +@@ -859,7 +859,7 @@ + + EINTRLOOP (r, write (job_fds[1], &token, 1)); + if (r != 1) +- pfatal_with_name (_("write jobserver")); ++ pfatal_with_name_err (_("write jobserver"), errno); + + DB (DB_JOBS, (_("Released token for child 0x%08lx (%s).\n"), + (unsigned long int) child, child->file->name)); +@@ -1699,6 +1699,7 @@ + + /* Set interruptible system calls, and read() for a job token. */ + set_child_handler_action_flags (1, waiting_jobs != NULL); ++ errno = 0; + got_token = read (job_rfd, &token, 1); + saved_errno = errno; + set_child_handler_action_flags (0, waiting_jobs != NULL); +@@ -1713,10 +1714,14 @@ + + /* If the error _wasn't_ expected (EINTR or EBADF), punt. Otherwise, + go back and reap_children(), and try again. */ +- errno = saved_errno; +- if (errno != EINTR && errno != EBADF) +- pfatal_with_name (_("read jobs pipe")); +- if (errno == EBADF) ++ if (saved_errno != EINTR && saved_errno != EBADF) ++ { ++ if (got_token == 0) ++ fatal (NILF, _("read jobs pipe EOF")); ++ else ++ pfatal_with_name_err (_("read jobs pipe"), saved_errno); ++ } ++ if (saved_errno == EBADF) + DB (DB_JOBS, ("Read returned EBADF.\n")); + } + #endif +@@ -1831,7 +1836,7 @@ + error (NILF, + _("cannot enforce load limits on this operating system")); + else +- perror_with_name (_("cannot enforce load limit: "), "getloadavg"); ++ perror_with_name_err (_("cannot enforce load limit: "), "getloadavg", errno); + } + lossage = errno; + load = 0; diff --git a/packaging/make-3.81-jobserver.patch b/packaging/make-3.81-jobserver.patch new file mode 100644 index 0000000..df65107 --- /dev/null +++ b/packaging/make-3.81-jobserver.patch @@ -0,0 +1,18 @@ +diff -urp make-3.81/main.c make-3.81-pm/main.c +--- make-3.81/main.c 2007-09-24 15:28:34.000000000 +0200 ++++ make-3.81-pm/main.c 2007-09-24 15:32:50.000000000 +0200 +@@ -1669,8 +1669,12 @@ main (int argc, char **argv, char **envp + + if (job_slots > 0) + { +- close (job_fds[0]); +- close (job_fds[1]); ++ if (restarts == 0) ++ { ++ close (job_fds[0]); ++ close (job_fds[1]); ++ } ++ + job_fds[0] = job_fds[1] = -1; + free (jobserver_fds->list); + free (jobserver_fds); diff --git a/packaging/make-3.81-memory.patch b/packaging/make-3.81-memory.patch new file mode 100644 index 0000000..7a7bf9f --- /dev/null +++ b/packaging/make-3.81-memory.patch @@ -0,0 +1,261 @@ +diff -Bburpd make-3.81_orig/file.c make-3.81/file.c +--- make-3.81_orig/file.c 2006-05-23 13:59:11.000000000 +0200 ++++ make-3.81/file.c 2006-05-23 14:39:34.000000000 +0200 +@@ -490,7 +490,7 @@ expand_deps (struct file *f) + + o = subst_expand (buffer, d->name, "%", "$*", 1, 2, 0); + +- free (d->name); ++ hash_strfree (d->name); + d->name = savestring (buffer, o - buffer); + d->staticpattern = 0; /* Clear staticpattern so that we don't + re-expand %s below. */ +@@ -549,7 +549,7 @@ expand_deps (struct file *f) + dp->name[0] = '\0'; + else + { +- free (dp->name); ++ hash_strfree (dp->name); + dp->name = savestring (buffer, o - buffer); + } + } +@@ -580,7 +580,7 @@ expand_deps (struct file *f) + if (d1->file == 0) + d1->file = enter_file (d1->name); + else +- free (d1->name); ++ hash_strfree (d1->name); + d1->name = 0; + d1->staticpattern = 0; + d1->need_2nd_expansion = 0; +Only in make-3.81: file.c~ +diff -Bburpd make-3.81_orig/implicit.c make-3.81/implicit.c +--- make-3.81_orig/implicit.c 2006-05-23 13:59:11.000000000 +0200 ++++ make-3.81/implicit.c 2006-05-23 14:40:01.000000000 +0200 +@@ -864,7 +864,7 @@ pattern_search (struct file *file, int a + dep->file = enter_file (dep->name); + /* enter_file uses dep->name _if_ we created a new file. */ + if (dep->name != dep->file->name) +- free (dep->name); ++ hash_strfree (dep->name); + dep->name = 0; + dep->file->tried_implicit |= dep->changed; + } +Only in make-3.81: implicit.c~ +diff -Bburpd make-3.81_orig/main.c make-3.81/main.c +--- make-3.81_orig/main.c 2006-05-23 13:59:11.000000000 +0200 ++++ make-3.81/main.c 2006-05-23 14:40:49.000000000 +0200 +@@ -540,6 +540,7 @@ initialize_global_hash_tables (void) + init_hash_files (); + hash_init_directories (); + hash_init_function_table (); ++ init_hash_strings (); + } + + static struct file * +Only in make-3.81: main.c~ +diff -Bburpd make-3.81_orig/make.h make-3.81/make.h +--- make-3.81_orig/make.h 2006-05-23 13:59:11.000000000 +0200 ++++ make-3.81/make.h 2006-05-23 14:41:21.000000000 +0200 +@@ -431,6 +431,11 @@ extern void print_spaces PARAMS ((unsign + extern char *find_percent PARAMS ((char *)); + extern FILE *open_tmpfile PARAMS ((char **, const char *)); + ++extern void init_hash_strings PARAMS ((void)); ++extern char *hash_strdup PARAMS ((const char *)); ++extern char *hash_savestring PARAMS ((const char *, unsigned int)); ++extern void hash_strfree PARAMS ((char *)); ++ + #ifndef NO_ARCHIVES + extern int ar_name PARAMS ((char *)); + extern void ar_parse_name PARAMS ((char *, char **, char **)); +Only in make-3.81: make.h~ +diff -Bburpd make-3.81_orig/misc.c make-3.81/misc.c +--- make-3.81_orig/misc.c 2006-05-23 13:59:11.000000000 +0200 ++++ make-3.81/misc.c 2006-05-23 14:42:59.000000000 +0200 +@@ -16,8 +16,10 @@ You should have received a copy of the G + GNU Make; see the file COPYING. If not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. */ + ++#include + #include "make.h" + #include "dep.h" ++#include "hash.h" + #include "debug.h" + + /* Variadic functions. We go through contortions to allow proper function +@@ -511,7 +513,7 @@ void + free_dep (struct dep *d) + { + if (d->name != 0) +- free (d->name); ++ hash_strfree (d->name); + + if (d->stem != 0) + free (d->stem); +@@ -535,7 +537,7 @@ copy_dep_chain (const struct dep *d) + bcopy ((char *) d, (char *) c, sizeof (struct dep)); + + if (c->name != 0) +- c->name = xstrdup (c->name); ++ c->name = hash_strdup (c->name); + if (c->stem != 0) + c->stem = xstrdup (c->stem); + +@@ -909,3 +911,154 @@ close_stdout (void) + exit (EXIT_FAILURE); + } + } ++ ++/* Hash table of duplicated strings. */ ++ ++struct hash_string ++{ ++ char *string; ++ unsigned int count; ++}; ++ ++static unsigned long ++string_hash_1 (key) ++ const void *key; ++{ ++ return_ISTRING_HASH_1 (((const struct hash_string *) key)->string); ++} ++ ++static unsigned long ++string_hash_2 (key) ++ const void *key; ++{ ++ return_ISTRING_HASH_2 (((const struct hash_string *) key)->string); ++} ++ ++static int ++string_hash_cmp (x, y) ++ const void *x; ++ const void *y; ++{ ++ return_ISTRING_COMPARE (((const struct hash_string *) x)->string, ++ ((const struct hash_string *) y)->string); ++} ++ ++static struct hash_table strings; ++ ++void ++init_hash_strings () ++{ ++ hash_init (&strings, 1000, string_hash_1, string_hash_2, ++ string_hash_cmp); ++} ++ ++/* Keep track duplicated string and return the old one if exists. */ ++ ++char * ++hash_strdup (ptr) ++ const char *ptr; ++{ ++ struct hash_string *h, key; ++ ++ if (*ptr == '\0') ++ return ""; ++ ++ key.string = (char *) ptr; ++ key.count = 0; ++ h = (struct hash_string *) hash_find_item (&strings, &key); ++ if (h == NULL) ++ { ++ char *result = (char *) malloc (strlen (ptr) + 1); ++ ++ if (result == NULL) ++ fatal (NILF, _("virtual memory exhausted")); ++ ++ strcpy (result, ptr); ++ ++ h = (struct hash_string *) malloc (sizeof (struct hash_string)); ++ if (h == NULL) ++ fatal (NILF, _("virtual memory exhausted")); ++ ++ h->string = result; ++ h->count = 1; ++ hash_insert (&strings, h); ++ } ++ else ++ { ++ h->count++; ++ assert (h->count != 0); ++ } ++ ++ return h->string; ++} ++ ++char * ++hash_savestring (str, length) ++ const char *str; ++ unsigned int length; ++{ ++ struct hash_string *h, key; ++ ++ if (length == 0 || *str == '\0') ++ return ""; ++ ++ key.string = alloca (length + 1); ++ key.count = 0; ++ bcopy (str, key.string, length); ++ key.string [length] = '\0'; ++ ++ h = (struct hash_string *) hash_find_item (&strings, &key); ++ if (h == NULL) ++ { ++ char *out = (char *) xmalloc (length + 1); ++ bcopy (str, out, length); ++ out[length] = '\0'; ++ ++ h = (struct hash_string *) malloc (sizeof (struct hash_string)); ++ if (h == NULL) ++ fatal (NILF, _("virtual memory exhausted")); ++ ++ h->string = out; ++ h->count = 1; ++ hash_insert (&strings, h); ++ } ++ else ++ { ++ h->count++; ++ assert (h->count != 0); ++ } ++ ++ return h->string; ++} ++ ++void ++hash_strfree (ptr) ++ char *ptr; ++{ ++ struct hash_string *h, key; ++ ++ if (*ptr == '\0') ++ return; ++ ++ key.string = ptr; ++ key.count = 0; ++ h = (struct hash_string *) hash_find_item (&strings, &key); ++ ++ /* Check if string comes from hash_strdup or hash_savestring. */ ++ if (h == NULL || h->string != ptr) ++ { ++ free (ptr); ++ return; ++ } ++ ++ h->count--; ++ if (h->count == 0) ++ { ++ struct hash_string *d; ++ ++ d = hash_delete (&strings, h); ++ assert (d == h); ++ free (h->string); ++ free (h); ++ } ++} +Only in make-3.81: misc.c~ +Only in make-3.81: read.c~ diff --git a/packaging/make-3.81-newlines.patch b/packaging/make-3.81-newlines.patch new file mode 100644 index 0000000..d9bb313 --- /dev/null +++ b/packaging/make-3.81-newlines.patch @@ -0,0 +1,23 @@ +--- make-3.81-orig/job.c 2007-02-21 19:10:54.000000000 +0100 ++++ make-3.81-pm/job.c 2007-02-22 18:13:59.000000000 +0100 +@@ -2706,7 +2706,7 @@ + unsigned int line_len = strlen (line); + + char *new_line = (char *) alloca (shell_len + (sizeof (minus_c) - 1) +- + (line_len * 2) + 1); ++ + (line_len * 4) + 1); + char *command_ptr = NULL; /* used for batch_mode_shell mode */ + + # ifdef __EMX__ /* is this necessary? */ +@@ -2740,9 +2740,10 @@ + #endif + if (PRESERVE_BSNL) + { +- *(ap++) = '\\'; ++ *(ap++) = '\''; + *(ap++) = '\\'; + *(ap++) = '\n'; ++ *(ap++) = '\''; + } + + ++p; diff --git a/packaging/make-3.81-rlimit.patch b/packaging/make-3.81-rlimit.patch new file mode 100644 index 0000000..f88f0fe --- /dev/null +++ b/packaging/make-3.81-rlimit.patch @@ -0,0 +1,111 @@ +diff -urp make-3.81/job.c make-3.81-pm/job.c +--- make-3.81/job.c 2008-03-25 18:15:38.000000000 +0100 ++++ make-3.81-pm/job.c 2008-03-25 17:51:11.000000000 +0100 +@@ -2079,6 +2079,9 @@ exec_command (char **argv, char **envp) + # else + + /* Run the program. */ ++#ifdef SET_STACK_SIZE ++ restore_original_stack_rlimit (); ++#endif + environ = envp; + execvp (argv[0], argv); + +diff -urp make-3.81/main.c make-3.81-pm/main.c +--- make-3.81/main.c 2008-03-25 18:15:38.000000000 +0100 ++++ make-3.81-pm/main.c 2008-03-25 18:14:04.000000000 +0100 +@@ -44,12 +44,53 @@ Foundation, Inc., 51 Franklin St, Fifth + # include + #endif + +-#if defined(HAVE_SYS_RESOURCE_H) && defined(HAVE_GETRLIMIT) && defined(HAVE_SETRLIMIT) +-# define SET_STACK_SIZE +-#endif +- + #ifdef SET_STACK_SIZE + # include ++/* Whether the rlimit was set successfuly */ ++static int setrlimit_succeeded = 0; ++/* Original rlim_cur */ ++static rlim_t setrlimit_orig_cur = 0; ++ ++/* Get rid of any avoidable limit on stack size so that alloca does ++ not fail. */ ++void ++set_max_stack_rlimit (void) ++{ ++ struct rlimit rlim; ++ ++ /* Back off if the limit is still set, probably due to failure in ++ restore_original_stack_rlimit. */ ++ if (setrlimit_succeeded) ++ return; ++ ++ if (getrlimit (RLIMIT_STACK, &rlim) == 0) ++ { ++ setrlimit_orig_cur = rlim.rlim_cur; ++ rlim.rlim_cur = rlim.rlim_max; ++ if (setrlimit (RLIMIT_STACK, &rlim) != -1) ++ setrlimit_succeeded = 1; ++ } ++} ++ ++/* Set the rlimit back to its original value. To be called before ++ process spawn. */ ++void ++restore_original_stack_rlimit (void) ++{ ++ struct rlimit rlim; ++ ++ if (!setrlimit_succeeded) ++ return; ++ ++ if (getrlimit (RLIMIT_STACK, &rlim) == 0) ++ { ++ rlim.rlim_cur = setrlimit_orig_cur; ++ setrlimit (RLIMIT_STACK, &rlim); ++ /* Don't reset the setrlimit_succeeded flag. This can be called ++ after vfork, in which case the flag is in memory shared with ++ the parent. */ ++ } ++} + #endif + + #ifdef _AMIGA +@@ -915,17 +956,7 @@ main (int argc, char **argv, char **envp + #endif + + #ifdef SET_STACK_SIZE +- /* Get rid of any avoidable limit on stack size. */ +- { +- struct rlimit rlim; +- +- /* Set the stack limit huge so that alloca does not fail. */ +- if (getrlimit (RLIMIT_STACK, &rlim) == 0) +- { +- rlim.rlim_cur = rlim.rlim_max; +- setrlimit (RLIMIT_STACK, &rlim); +- } +- } ++ set_max_stack_rlimit (); + #endif + + #ifdef HAVE_ATEXIT +diff -urp make-3.81/make.h make-3.81-pm/make.h +--- make-3.81/make.h 2008-03-25 18:15:38.000000000 +0100 ++++ make-3.81-pm/make.h 2008-03-25 17:51:10.000000000 +0100 +@@ -346,6 +346,13 @@ extern int strcmpi (const char *,const c + #define N_(msgid) gettext_noop (msgid) + #define S_(msg1,msg2,num) ngettext (msg1,msg2,num) + ++/* Handle rlimit */ ++#if defined(HAVE_SYS_RESOURCE_H) && defined(HAVE_GETRLIMIT) && defined(HAVE_SETRLIMIT) ++# define SET_STACK_SIZE ++void set_max_stack_rlimit (void); ++void restore_original_stack_rlimit (void); ++#endif ++ + /* Handle other OSs. */ + #if defined(HAVE_DOS_PATHS) + # define PATH_SEPARATOR_CHAR ';' +diff -urp make-3.81/w32/Makefile make-3.81-pm/w32/Makefile diff --git a/packaging/make.spec b/packaging/make.spec new file mode 100644 index 0000000..97b78f2 --- /dev/null +++ b/packaging/make.spec @@ -0,0 +1,91 @@ +# +# Do NOT Edit the Auto-generated Part! +# Generated by: spectacle version 0.22 +# +# >> macros +# << macros + +Name: make +Version: 3.81 +Release: 1 +License: GPL-2.0+ +Summary: A GNU tool which simplifies the build process for users +Url: http://www.gnu.org/software/make/ +Group: Development/Tools +Source0: ftp://ftp.gnu.org/gnu/make/make-%{version}.tar.bz2 +Source100: make.yaml +Patch0: make-3.79.1-noclock_gettime.patch +Patch1: make-3.80-j8k.patch +Patch2: make-3.80-getcwd.patch +Patch3: make-3.81-err-reporting.patch +Patch4: make-3.81-memory.patch +Patch5: make-3.81-rlimit.patch +Patch6: make-3.81-newlines.patch +Patch7: make-3.81-jobserver.patch + +%description +A GNU tool for controlling the generation of executables and other +non-source files of a program from the program's source files. Make +allows users to build and install packages without any significant +knowledge about the details of the build process. The details about +how the program should be built are provided for make in the program's +makefile. + +%prep +%setup -q + +# make-3.79.1-noclock_gettime.patch +%patch0 -p1 +# make-3.80-j8k.patch +%patch1 -p1 +# make-3.80-getcwd.patch +%patch2 -p1 +# make-3.81-err-reporting.patch +%patch3 -p1 +# make-3.81-memory.patch +%patch4 -p1 +# make-3.81-rlimit.patch +%patch5 -p1 +# make-3.81-newlines.patch +%patch6 -p1 +# make-3.81-jobserver.patch +%patch7 -p1 +# >> setup +# << setup + +%build +# >> build pre +# << build pre + +%configure --disable-static \ + --disable-nls + +make %{?_smp_mflags} + +# >> build post +# << build post +%install +# >> install pre +# << install pre +%make_install + +# >> install post +ln -sf make %{buildroot}%{_bindir}/gmake +ln -sf make.1 %{buildroot}%{_mandir}/man1/gmake.1 +rm -rf %{buildroot}%{_infodir} +# << install post + + + + + + +%files +%defattr(-,root,root,-) +# >> files +%doc NEWS README COPYING AUTHORS +%{_bindir}/* +%doc %{_mandir}/man*/* +# << files + +