diff options
Diffstat (limited to 'erts/etc')
-rw-r--r-- | erts/etc/common/Makefile.in | 15 | ||||
-rw-r--r-- | erts/etc/common/erlc.c | 13 | ||||
-rw-r--r-- | erts/etc/common/erlexec.c | 36 | ||||
-rw-r--r-- | erts/etc/common/escript.c | 36 | ||||
-rw-r--r-- | erts/etc/unix/Install.src | 59 | ||||
-rwxr-xr-x | erts/etc/win32/cygwin_tools/vc/mc.sh | 8 | ||||
-rwxr-xr-x | erts/etc/win32/cygwin_tools/vc/rc.sh | 4 |
7 files changed, 86 insertions, 85 deletions
diff --git a/erts/etc/common/Makefile.in b/erts/etc/common/Makefile.in index a9acab640e..3db4fcba61 100644 --- a/erts/etc/common/Makefile.in +++ b/erts/etc/common/Makefile.in @@ -1,19 +1,19 @@ # # %CopyrightBegin% -# -# Copyright Ericsson AB 1996-2009. All Rights Reserved. -# +# +# Copyright Ericsson AB 1996-2010. All Rights Reserved. +# # The contents of this file are subject to the Erlang Public License, # Version 1.1, (the "License"); you may not use this file except in # compliance with the License. You should have received a copy of the # Erlang Public License along with this software. If not, it can be # retrieved online at http://www.erlang.org/. -# +# # Software distributed under the License is distributed on an "AS IS" # basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See # the License for the specific language governing rights and limitations # under the License. -# +# # %CopyrightEnd% # @@ -359,12 +359,9 @@ $(OBJDIR)/escript.o: escript.c ifeq ($(TARGET),win32) -$(BINDIR)/$(ERLEXEC): $(OBJDIR)/erlexec.o $(OBJDIR)/win_erlexec.o $(OBJDIR)/init_file.o $(OBJDIR)/$(ERLRES_OBJ) dbg +$(BINDIR)/$(ERLEXEC): $(OBJDIR)/erlexec.o $(OBJDIR)/win_erlexec.o $(OBJDIR)/init_file.o $(OBJDIR)/$(ERLRES_OBJ) $(LD) -dll $(LDFLAGS) -o $@ $(OBJDIR)/erlexec.o $(OBJDIR)/win_erlexec.o $(OBJDIR)/init_file.o $(OBJDIR)/$(ERLRES_OBJ) $(ERLEXEC_XLIBS) -dbg: - echo DBG - $(BINDIR)/erl@EXEEXT@: $(OBJDIR)/erl.o $(OBJDIR)/init_file.o $(OBJDIR)/$(ERLRES_OBJ) $(LD) $(LDFLAGS) -o $@ $(OBJDIR)/erl.o $(OBJDIR)/init_file.o $(OBJDIR)/$(ERLRES_OBJ) diff --git a/erts/etc/common/erlc.c b/erts/etc/common/erlc.c index c958fed741..09aca19e6c 100644 --- a/erts/etc/common/erlc.c +++ b/erts/etc/common/erlc.c @@ -1,19 +1,19 @@ /* * %CopyrightBegin% - * - * Copyright Ericsson AB 1997-2009. All Rights Reserved. - * + * + * Copyright Ericsson AB 1997-2010. All Rights Reserved. + * * The contents of this file are subject to the Erlang Public License, * Version 1.1, (the "License"); you may not use this file except in * compliance with the License. You should have received a copy of the * Erlang Public License along with this software. If not, it can be * retrieved online at http://www.erlang.org/. - * + * * Software distributed under the License is distributed on an "AS IS" * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See * the License for the specific language governing rights and limitations * under the License. - * + * * %CopyrightEnd% */ /* @@ -310,6 +310,8 @@ main(int argc, char** argv) case 'W': /* Enable warnings. */ if (strcmp(argv[1]+2, "all") == 0) { PUSH2("@warn", "999"); + } else if (strcmp(argv[1]+2, "error") == 0) { + PUSH2("@option", "warnings_as_errors"); } else if (isdigit((int)argv[1][2])) { PUSH2("@warn", argv[1]+2); } else { @@ -566,6 +568,7 @@ usage(void) {"-pz path", "add path to the end of Erlang's code path"}, {"-smp", "compile using SMP emulator"}, {"-v", "verbose compiler output"}, + {"-Werror", "make all warnings into errors"}, {"-W0", "disable warnings"}, {"-Wnumber", "set warning level to number"}, {"-Wall", "enable all warnings"}, diff --git a/erts/etc/common/erlexec.c b/erts/etc/common/erlexec.c index 4325418e7c..f79f5cc978 100644 --- a/erts/etc/common/erlexec.c +++ b/erts/etc/common/erlexec.c @@ -1,19 +1,19 @@ /* * %CopyrightBegin% - * - * Copyright Ericsson AB 1996-2009. All Rights Reserved. - * + * + * Copyright Ericsson AB 1996-2010. All Rights Reserved. + * * The contents of this file are subject to the Erlang Public License, * Version 1.1, (the "License"); you may not use this file except in * compliance with the License. You should have received a copy of the * Erlang Public License along with this software. If not, it can be * retrieved online at http://www.erlang.org/. - * + * * Software distributed under the License is distributed on an "AS IS" * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See * the License for the specific language governing rights and limitations * under the License. - * + * * %CopyrightEnd% */ @@ -123,6 +123,14 @@ static char *pluss_val_switches[] = { "ss", NULL }; +/* +h arguments with values */ +static char *plush_val_switches[] = { + "ms", + "mbs", + "", + NULL +}; + /* * Define sleep(seconds) in terms of Sleep() on Windows. @@ -783,10 +791,10 @@ int main(int argc, char **argv) case 'a': case 'A': case 'b': - case 'h': case 'i': case 'P': case 'S': + case 't': case 'T': case 'R': case 'W': @@ -850,6 +858,20 @@ int main(int argc, char **argv) goto the_default; break; } + case 'h': + if (!is_one_of_strings(&argv[i][2], plush_val_switches)) { + goto the_default; + } else { + if (i+1 >= argc + || argv[i+1][0] == '-' + || argv[i+1][0] == '+') + usage(argv[i]); + argv[i][0] = '-'; + add_Eargs(argv[i]); + add_Eargs(argv[i+1]); + i++; + } + break; case 's': if (!is_one_of_strings(&argv[i][2], pluss_val_switches)) @@ -1048,7 +1070,7 @@ usage_aux(void) #endif "[-make] [-man [manopts] MANPAGE] [-x] [-emu_args] " "[-args_file FILENAME] " - "[+A THREADS] [+a SIZE] [+B[c|d|i]] [+c] [+h HEAP_SIZE] [+K BOOLEAN] " + "[+A THREADS] [+a SIZE] [+B[c|d|i]] [+c] [+h HEAP_SIZE_OPTION] [+K BOOLEAN] " "[+l] [+M<SUBSWITCH> <ARGUMENT>] [+P MAX_PROCS] [+R COMPAT_REL] " "[+r] [+s SCHEDULER_OPTION] [+S NO_SCHEDULERS:NO_SCHEDULERS_ONLINE] [+T LEVEL] [+V] [+v] [+W<i|w>] " "[args ...]\n"); diff --git a/erts/etc/common/escript.c b/erts/etc/common/escript.c index ab37d4af46..1bc5eb7651 100644 --- a/erts/etc/common/escript.c +++ b/erts/etc/common/escript.c @@ -1,19 +1,19 @@ /* * %CopyrightBegin% - * - * Copyright Ericsson AB 2007-2009. All Rights Reserved. - * + * + * Copyright Ericsson AB 2007-2010. All Rights Reserved. + * * The contents of this file are subject to the Erlang Public License, * Version 1.1, (the "License"); you may not use this file except in * compliance with the License. You should have received a copy of the * Erlang Public License along with this software. If not, it can be * retrieved online at http://www.erlang.org/. - * + * * Software distributed under the License is distributed on an "AS IS" * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See * the License for the specific language governing rights and limitations * under the License. - * + * * %CopyrightEnd% */ /* @@ -199,9 +199,10 @@ find_prog(char *origpath) continue; } else { /* Wow we found the executable. */ - strcpy(abspath, wildcard); + strcpy(relpath, wildcard); FindClose(dir_handle); - return strsave(abspath); + look_for_sep = FALSE; + break; } #else dp = opendir(dir); @@ -216,11 +217,12 @@ find_prog(char *origpath) if (strcmp(origpath, dirp->d_name) == 0) { /* Wow we found the executable. */ - strcpy(abspath, dir); - strcat(abspath, DIRSEPSTR); - strcat(abspath, dirp->d_name); + strcpy(relpath, dir); + strcat(relpath, DIRSEPSTR); + strcat(relpath, dirp->d_name); closedir(dp); - return strsave(abspath); + look_for_sep = FALSE; + break; } } } @@ -239,8 +241,8 @@ find_prog(char *origpath) #else if (!realpath(relpath, abspath)) { #endif /* __WIN32__ */ - /* Cannot determine absolute path to escript. Try the relative. */ - return strsave(relpath); + /* Cannot determine absolute path to escript. Try the origin. */ + return strsave(origpath); } else { return strsave(abspath); } @@ -373,11 +375,10 @@ main(int argc, char** argv) if (strcmp(basename, "escript") == 0) { #endif /* - * Push all options (without the hyphen) before the script name. + * Locate all options before the script name. */ while (argc > 1 && argv[1][0] == '-') { - PUSH(argv[1]+1); argc--; argv++; last_opt = argv; @@ -402,6 +403,7 @@ main(int argc, char** argv) scriptname[len-4] = '\0'; } #endif + strcat(scriptname, ".escript"); } @@ -418,7 +420,7 @@ main(int argc, char** argv) PUSH3("-run", "escript", "start"); /* - * Push all options (without the hyphen) before the script name. + * Push all options before the script name. But omit the leading hyphens. */ while (first_opt != last_opt) { @@ -500,7 +502,7 @@ char *make_commandline(char **argv) *(--p) = '\0'; if (debug) { - printf("Processed commandline:%s\n",buff); + printf("Processed command line:%s\n",buff); } return buff; } diff --git a/erts/etc/unix/Install.src b/erts/etc/unix/Install.src index 410a77d91c..83f9690782 100644 --- a/erts/etc/unix/Install.src +++ b/erts/etc/unix/Install.src @@ -1,25 +1,26 @@ #!/bin/sh # # %CopyrightBegin% -# -# Copyright Ericsson AB 1996-2009. All Rights Reserved. -# +# +# Copyright Ericsson AB 1996-2010. All Rights Reserved. +# # The contents of this file are subject to the Erlang Public License, # Version 1.1, (the "License"); you may not use this file except in # compliance with the License. You should have received a copy of the # Erlang Public License along with this software. If not, it can be # retrieved online at http://www.erlang.org/. -# +# # Software distributed under the License is distributed on an "AS IS" # basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See # the License for the specific language governing rights and limitations # under the License. -# -# %CopyrightEnd% -# -# Patch $ERL_ROOT/emulator/obj/Makefile.dist & make # +# %CopyrightEnd% # +usage=" +Usage: + Install [-cross] [-minimal|-sasl] <ERL_ROOT> +" start_option=query unset cross while [ $# -ne 0 ]; do @@ -42,7 +43,8 @@ fi if [ -z "$ERL_ROOT" -o ! -d "$ERL_ROOT" ] then - echo "Install: need ERL_ROOT directory as argument" + echo "Install: need <ERL_ROOT> directory as argument" >&2 + echo $usage >&2 exit 1 fi @@ -50,15 +52,17 @@ case ":$ERL_ROOT" in :/*) ;; *) - echo "Install: need an absolute path to ERL_ROOT" + echo "Install: need an absolute path to <ERL_ROOT>" >&2 + echo $usage >&2 exit 1 ;; esac if [ ! -d "$ERL_ROOT/erts-%I_VSN%/bin" ] then - echo "Install: The directory $ERL_ROOT/erts-%I_VSN%/bin does not exist" - echo " Bad location or erts module not un-tared" + echo "Install: The directory $ERL_ROOT/erts-%I_VSN%/bin does not exist" >&2 + echo " Bad location or erts module not un-tared" >&2 + echo $usage >&2 exit 1 fi @@ -67,20 +71,6 @@ then mkdir $ERL_ROOT/bin fi -# -# Fetch target system. -# -SYS=`(uname -s) 2>/dev/null` || SYS=unknown -REL=`(uname -r) 2>/dev/null` || REL=unknown -case $SYS:$REL in - SunOS:5.*) - TARGET=sunos5 ;; - Linux:*) - TARGET=linux ;; - *) - TARGET="" ;; -esac - cd $ERL_ROOT/erts-%I_VSN%/bin sed -e "s;%FINAL_ROOTDIR%;$TARGET_ERL_ROOT;" erl.src > erl @@ -111,7 +101,7 @@ if [ -h epmd ]; then /bin/rm -f epmd fi -ln -s $TARGET_ERL_ROOT/erts-%I_VSN%/bin/epmd epmd +ln -s ../erts-%I_VSN%/bin/epmd epmd cp -p $ERL_ROOT/erts-%I_VSN%/bin/run_erl . cp -p $ERL_ROOT/erts-%I_VSN%/bin/to_erl . @@ -150,19 +140,6 @@ cp -p $Name.boot start.boot cp -p ../releases/%I_SYSTEM_VSN%/$Name.script start.script # -# We always run ranlib unless Solaris/SunOS 5 -# but ignore failures. -# -if [ "X$TARGET" != "Xsunos5" -a -d $ERL_ROOT/usr/lib ]; then - cd $ERL_ROOT/usr/lib - for library in lib*.a - do - (ranlib $library) > /dev/null 2>&1 - done -fi - - -# # Fixing the man pages # @@ -172,4 +149,4 @@ then ./misc/format_man_pages $ERL_ROOT fi - +exit 0 diff --git a/erts/etc/win32/cygwin_tools/vc/mc.sh b/erts/etc/win32/cygwin_tools/vc/mc.sh index 813b59947b..676b072655 100755 --- a/erts/etc/win32/cygwin_tools/vc/mc.sh +++ b/erts/etc/win32/cygwin_tools/vc/mc.sh @@ -24,7 +24,7 @@ CMD="" OUTPUT_DIRNAME="" # Find the correct mc.exe. This could be done by the configure script, -# But as we seldom use the resource compiler, it might as well be done here... +# But as we seldom use the message compiler, it might as well be done here... MCC="" save_ifs=$IFS IFS=: @@ -32,7 +32,7 @@ for p in $PATH; do if [ -f $p/mc.exe ]; then if [ -n "`$p/mc.exe -? 2>&1 >/dev/null </dev/null \ | grep -i \"message compiler\"`" ]; then - MCC=$p/mc.exe + MCC=`echo "$p/mc.exe" | sed 's/ /\\\\ /g'` fi fi done @@ -68,8 +68,8 @@ while test -n "$1" ; do done p=$$ if [ "X$MC_SH_DEBUG_LOG" != "X" ]; then - echo rc.sh "$SAVE" >>$MC_SH_DEBUG_LOG - echo rc.exe $CMD >>$MC_SH_DEBUG_LOG + echo mc.sh "$SAVE" >>$MC_SH_DEBUG_LOG + echo mc.exe $CMD >>$MC_SH_DEBUG_LOG fi if [ -n "$OUTPUT_DIRNAME" ]; then cd $OUTPUT_DIRNAME diff --git a/erts/etc/win32/cygwin_tools/vc/rc.sh b/erts/etc/win32/cygwin_tools/vc/rc.sh index 748de48890..6a6921c49e 100755 --- a/erts/etc/win32/cygwin_tools/vc/rc.sh +++ b/erts/etc/win32/cygwin_tools/vc/rc.sh @@ -30,8 +30,8 @@ save_ifs=$IFS IFS=: for p in $PATH; do if [ -f $p/rc.exe ]; then - if [ -n "`$p/rc.exe -? 2>&1 | grep -i "resource compiler"`" ]; then - RCC=$p/rc.exe + if [ -n "`$p/rc.exe -? 2>&1 | grep -i "resource compiler"`" ]; then + RCC=`echo "$p/rc.exe" | sed 's/ /\\\\ /g'` fi fi done |