Просмотр исходного кода

* Fixed a bug in build with randint()
* Added --with-pack= to ./configure


svn: 726

Bryan Drewery 22 лет назад
Родитель
Сommit
d97c5d76db
8 измененных файлов с 73 добавлено и 26 удалено
  1. 5 4
      Makefile.in
  2. 1 0
      autotools/configure.ac
  3. 4 3
      autotools/includes/acinclude.m4
  4. 12 1
      autotools/includes/pack.m4
  5. 21 8
      build
  6. 24 6
      configure
  7. 1 1
      src/Makefile.in
  8. 5 3
      src/makesettings.c

+ 5 - 4
Makefile.in

@@ -10,13 +10,14 @@ VPATH = @srcdir@
 @SET_MAKE@
 @SET_MAKE@
 prefix = @prefix@
 prefix = @prefix@
 VERSION = @VERSION@
 VERSION = @VERSION@
+CFG = @CFG@
 PACKNAME = @PACKNAME@
 PACKNAME = @PACKNAME@
 DISTRIB = @PACKNAME@-@VERSION@
 DISTRIB = @PACKNAME@-@VERSION@
 CCDEPMODE = @CCDEPMODE@
 CCDEPMODE = @CCDEPMODE@
 LEAFEXEC = leaf
 LEAFEXEC = leaf
 HUBEXEC = hub
 HUBEXEC = hub
 DISTROFILES = config.h.in doc/ misc/ scripts/ ChangeLog Makefile.in build configure pack/ src/
 DISTROFILES = config.h.in doc/ misc/ scripts/ ChangeLog Makefile.in build configure pack/ src/
-EXCLUDES = pack/pack.cfg misc/ind doc/DEVEL src/Makefile src/compat/Makefile src/mod/Makefile \
+EXCLUDES = $(CFG) misc/ind doc/DEVEL src/Makefile src/compat/Makefile src/mod/Makefile \
            src/crypto/Makefile src/crypto/.deps src/crypto/.cvsignore \
            src/crypto/Makefile src/crypto/.deps src/crypto/.cvsignore \
            src/mod/dns.mod/Makefile src/mod/*.mod/.deps/ src/mod/*.mod/.cvsignore \
            src/mod/dns.mod/Makefile src/mod/*.mod/.deps/ src/mod/*.mod/.cvsignore \
            src/.deps src/compat/.deps misc/commit misc/grep autotools/ \
            src/.deps src/compat/.deps misc/commit misc/grep autotools/ \
@@ -115,8 +116,8 @@ tar: distrib
 #	rm -rf $(DISTRIB)/
 #	rm -rf $(DISTRIB)/
 #	cd ../ && rm -rf distrib/
 #	cd ../ && rm -rf distrib/
 
 
-packconf: makesettings pack/pack.cfg
-	@src/makesettings pack/pack.cfg src/settings.c~
+packconf: makesettings $(CFG)
+	@src/makesettings $(CFG) src/settings.c~
 	@(if [ ! -f src/settings.c ]; then \
 	@(if [ ! -f src/settings.c ]; then \
 	touch src/settings.c; \
 	touch src/settings.c; \
 	fi)
 	fi)
@@ -156,7 +157,7 @@ help: packconf makehelp stringfix
 	cp -f src/help.h~ src/help.h; \
 	cp -f src/help.h~ src/help.h; \
 	fi)
 	fi)
 
 
-stringfix: packconf src/stringfix.c pack/pack.cfg
+stringfix: packconf src/stringfix.c config.h
 	+@cd src && ${MAKE_UTILS} stringfix
 	+@cd src && ${MAKE_UTILS} stringfix
 
 
 makesettings: src/makesettings.c
 makesettings: src/makesettings.c

+ 1 - 0
autotools/configure.ac

@@ -10,6 +10,7 @@ AC_COPYRIGHT([Copyright (c) 2003, 2004 Bryan Drewery (bryan)])
 AC_REVISION($Revision$)
 AC_REVISION($Revision$)
 
 
 EGG_SAVE_PARAMETERS
 EGG_SAVE_PARAMETERS
+EGG_CHECK_PACKCFG
 
 
 # Setup build environment
 # Setup build environment
 AC_PROG_CC
 AC_PROG_CC

+ 4 - 3
autotools/includes/acinclude.m4

@@ -478,16 +478,17 @@ dnl  EGG_SUBST_VERSION()
 dnl
 dnl
 AC_DEFUN(EGG_SUBST_VERSION, [dnl
 AC_DEFUN(EGG_SUBST_VERSION, [dnl
 VERSION=`grep "char" $srcdir/src/main.c | $AWK '/egg_version/ {print [$]5}' | sed -e 's/\"//g' | sed -e 's/\;//g'`
 VERSION=`grep "char" $srcdir/src/main.c | $AWK '/egg_version/ {print [$]5}' | sed -e 's/\"//g' | sed -e 's/\;//g'`
-if ! test -f $srcdir/pack/pack.cfg; then
+if ! test -f $cfg; then
  cat << EOF >&2
  cat << EOF >&2
 configure: error:
 configure: error:
 
 
-  Your pack cfg is missing, please copy it to $srcdir/pack/pack.cfg
+  Your pack cfg is missing, please copy it to $srcdir/$cfg
+  Or specify the path to it with: --with-cfg=
 
 
 EOF
 EOF
  exit 1
  exit 1
 fi
 fi
-PACKNAME=`grep "PACKNAME " $srcdir/pack/pack.cfg | $AWK '/PACKNAME/ {print [$]2}'`
+PACKNAME=`grep "PACKNAME " $cfg | $AWK '/PACKNAME/ {print [$]2}'`
 version_num=`echo $VERSION | $AWK 'BEGIN {FS = "."} {printf("%d%02d%02d", [$]1, [$]2, [$]3)}'`
 version_num=`echo $VERSION | $AWK 'BEGIN {FS = "."} {printf("%d%02d%02d", [$]1, [$]2, [$]3)}'`
 AC_DEFINE_UNQUOTED(EGG_VERSION, $version_num, [Defines the current pack version])dnl
 AC_DEFINE_UNQUOTED(EGG_VERSION, $version_num, [Defines the current pack version])dnl
 AC_SUBST(VERSION)dnl
 AC_SUBST(VERSION)dnl

+ 12 - 1
autotools/includes/pack.m4

@@ -1,10 +1,21 @@
+dnl EGG_CHECK_PACKCFG()
+AC_DEFUN([EGG_CHECK_PACKCFG],
+[
+  cfg="pack/pack.cfg"
+  AC_ARG_WITH(cfg,
+              [  --with-cfg=PATH      full path to pack.cfg],
+              [cfg="$withval"])
+])
+
 dnl  DO_PACK_CFG()
 dnl  DO_PACK_CFG()
 dnl
 dnl
 AC_DEFUN(DO_PACK_CFG, [dnl
 AC_DEFUN(DO_PACK_CFG, [dnl
 
 
-for define in `sed -n -e '[s/^+ \([^ ]*\) .*/\1/ p]' pack/pack.cfg`; do
+for define in `sed -n -e '[s/^+ \([^ ]*\) .*/\1/ p]' $cfg`; do
  u_define="S_$define"
  u_define="S_$define"
  AC_DEFINE_UNQUOTED($u_define)
  AC_DEFINE_UNQUOTED($u_define)
+ CFG="$cfg"
+ AC_SUBST(CFG)
 done
 done
 
 
 ])dnl
 ])dnl

+ 21 - 8
build

@@ -14,29 +14,29 @@ fi
 
 
 ver="?.?.?"
 ver="?.?.?"
 ver=`grep "char" src/main.c | $AWK '/egg_version/ {print $5}' | sed -e 's/\"//g' | sed -e 's/\;//g'`
 ver=`grep "char" src/main.c | $AWK '/egg_version/ {print $5}' | sed -e 's/\"//g' | sed -e 's/\;//g'`
-PACKNAME=`grep "PACKNAME " pack/pack.cfg | $AWK '/PACKNAME/ {print $2}'`
 BUILDTS=`cat src/build.h | $AWK '{print $3}'`
 BUILDTS=`cat src/build.h | $AWK '{print $3}'`
 builddate=`perl -e "use POSIX 'strftime';print strftime(\"%m.%d.%Y\n\",gmtime(${BUILDTS}));"`
 builddate=`perl -e "use POSIX 'strftime';print strftime(\"%m.%d.%Y\n\",gmtime(${BUILDTS}));"`
 
 
 clear
 clear
 #Display a banner
 #Display a banner
-bt=`grep -A 3 "char \*wbanner() {" src/misc.c | grep "switch" | sed -e "s/.*switch (r % \(.\)) {/\1/"`
+bt=`grep -A 3 "char \*wbanner() {" src/misc.c | grep "switch" | sed -e "s/.*switch (randint(\(.\))) {/\1/"`
 bn=$[($RANDOM % ${bt})]
 bn=$[($RANDOM % ${bt})]
 banner=`grep -A 15 "char \*wbanner() {" src/misc.c | grep "case ${bn}:" | sed -e "s/.*case ${bn}: return STR(\"\(.*\)\");/\1/"`
 banner=`grep -A 15 "char \*wbanner() {" src/misc.c | grep "case ${bn}:" | sed -e "s/.*case ${bn}: return STR(\"\(.*\)\");/\1/"`
 echo -e "${banner}"
 echo -e "${banner}"
 echo -e "Version:   ${ver}\nBuild:     ${builddate}"
 echo -e "Version:   ${ver}\nBuild:     ${builddate}"
-echo -e `grep -r "http://" src/misc.c | sed -e "s/dprintf(idx, STR(\"\(.*\)\"));/\1/"`
-echo
 
 
 usage() 
 usage() 
 {
 {
-    echo "Usage: $0 [-bcdn] [all|hub|leaf]"
+    echo
+    echo "Usage: $0 [-bcCdn] [-p FILE] [all|hub|leaf]"
     echo
     echo
     echo "    The options are as follows:"
     echo "    The options are as follows:"
     echo "    -b        Use bzip2 instead of gzip when packaging."
     echo "    -b        Use bzip2 instead of gzip when packaging."
     echo "    -c        Cleans up old binaries/files before compile."
     echo "    -c        Cleans up old binaries/files before compile."
+    echo "    -C        Preforms a distclean before making."
     echo "    -d        Builds a debug package."
     echo "    -d        Builds a debug package."
     echo "    -n        Do not package the binaries."
     echo "    -n        Do not package the binaries."
+    echo "    -p  FILE  Used for development."
 }
 }
 
 
 debug=0
 debug=0
@@ -47,15 +47,20 @@ clean=0
 type=
 type=
 nopkg=0
 nopkg=0
 bzip=0
 bzip=0
+pack=pack/pack.cfg
+if test -f Makefile; then
+  pack="`grep "CFG =" Makefile | sed -e 's/CFG = \(.*\)/\1/'`"
+fi
 
 
-while getopts bcdhn opt ; do
+while getopts bCcdhnp: opt ; do
         case "$opt" in
         case "$opt" in
         b) bzip=1 ;;
         b) bzip=1 ;;
 	c) clean=1 ;;
 	c) clean=1 ;;
+	C) clean=2 ;;
         d) debug=1 ;;
         d) debug=1 ;;
 	h) usage; exit 0 ;;
 	h) usage; exit 0 ;;
         n) nopkg=1 ;;
         n) nopkg=1 ;;
-#	t) tcldir="$OPTARG" ;;
+	p) pack="$OPTARG" ;;
         *) usage; exit 1 ;;
         *) usage; exit 1 ;;
 
 
         esac
         esac
@@ -63,6 +68,11 @@ done
 
 
 shift $(($OPTIND - 1))
 shift $(($OPTIND - 1))
 
 
+PACKNAME=`grep "PACKNAME " ${pack} | $AWK '/PACKNAME/ {print $2}'`
+echo "Packname:  ${PACKNAME} (${pack})"
+echo -e `grep -r "http://" src/misc.c | sed -e "s/dprintf(idx, STR(\"\(.*\)\"));/\1/"`
+echo
+
 if test -z "$1"; then
 if test -z "$1"; then
  usage
  usage
  exit 1
  exit 1
@@ -116,7 +126,7 @@ echo "[*] Building ${PACKNAME}::${type} for $os"
 echo "[*] Configuring..."
 echo "[*] Configuring..."
 umask 077 >/dev/null
 umask 077 >/dev/null
 
 
-./configure --silent
+./configure --silent --with-pack=${pack}
 
 
 MAKE="`which gmake`"
 MAKE="`which gmake`"
 if test -z "${MAKE}"; then
 if test -z "${MAKE}"; then
@@ -127,6 +137,9 @@ fi
 if [ $clean = "1" ]; then
 if [ $clean = "1" ]; then
  echo "[*] Cleaning up old binaries/files..."
  echo "[*] Cleaning up old binaries/files..."
  ${MAKE} clean > /dev/null
  ${MAKE} clean > /dev/null
+elif [ $clean = "2" ]; then
+ echo "[*] DistCleaning old files..."
+ ${MAKE} distclean > /dev/null
 fi
 fi
 
 
 _build()
 _build()

+ 24 - 6
configure

@@ -1,5 +1,5 @@
 #! /bin/sh
 #! /bin/sh
-# From configure.ac Revision: 1.18 .
+# From configure.ac Revision: 1.19 .
 # Guess values for system-dependent variables and create Makefiles.
 # Guess values for system-dependent variables and create Makefiles.
 # Generated by GNU Autoconf 2.59.
 # Generated by GNU Autoconf 2.59.
 #
 #
@@ -313,7 +313,7 @@ ac_includes_default="\
 # include <unistd.h>
 # include <unistd.h>
 #endif"
 #endif"
 
 
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS egg_ac_parameters CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP EGREP CCDEPMODE CCDEBUG SET_MAKE HEAD_1 AWK BASENAME OBJCOPY STRIP UNAME DISTCC RESLIB RESINCLUDE ZLIB LIBOBJS VERSION NUMVER PACKNAME MOD_UPDIR LTLIBOBJS'
+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS egg_ac_parameters CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP EGREP CCDEPMODE CCDEBUG SET_MAKE HEAD_1 AWK BASENAME OBJCOPY STRIP UNAME DISTCC RESLIB RESINCLUDE ZLIB LIBOBJS VERSION NUMVER PACKNAME CFG MOD_UPDIR LTLIBOBJS'
 ac_subst_files=''
 ac_subst_files=''
 
 
 # Initialize some variables set by options.
 # Initialize some variables set by options.
@@ -846,6 +846,11 @@ Optional Features:
   --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
   --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
   --disable-ipv6           disable IPv6 support
   --disable-ipv6           disable IPv6 support
 
 
+Optional Packages:
+  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
+  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
+  --with-cfg=PATH      full path to pack.cfg
+
 Some influential environment variables:
 Some influential environment variables:
   CC          C compiler command
   CC          C compiler command
   CFLAGS      C compiler flags
   CFLAGS      C compiler flags
@@ -1329,6 +1334,15 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 
 
 
 
 
+  cfg="pack/pack.cfg"
+
+# Check whether --with-cfg or --without-cfg was given.
+if test "${with_cfg+set}" = set; then
+  withval="$with_cfg"
+  cfg="$withval"
+fi;
+
+
 # Setup build environment
 # Setup build environment
 ac_ext=c
 ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_cpp='$CPP $CPPFLAGS'
@@ -11577,16 +11591,17 @@ fi
 rm -f confcache
 rm -f confcache
 
 
 VERSION=`grep "char" $srcdir/src/main.c | $AWK '/egg_version/ {print $5}' | sed -e 's/\"//g' | sed -e 's/\;//g'`
 VERSION=`grep "char" $srcdir/src/main.c | $AWK '/egg_version/ {print $5}' | sed -e 's/\"//g' | sed -e 's/\;//g'`
-if ! test -f $srcdir/pack/pack.cfg; then
+if ! test -f $cfg; then
  cat << EOF >&2
  cat << EOF >&2
 configure: error:
 configure: error:
 
 
-  Your pack cfg is missing, please copy it to $srcdir/pack/pack.cfg
+  Your pack cfg is missing, please copy it to $srcdir/$cfg
+  Or specify the path to it with: --with-cfg=
 
 
 EOF
 EOF
  exit 1
  exit 1
 fi
 fi
-PACKNAME=`grep "PACKNAME " $srcdir/pack/pack.cfg | $AWK '/PACKNAME/ {print $2}'`
+PACKNAME=`grep "PACKNAME " $cfg | $AWK '/PACKNAME/ {print $2}'`
 version_num=`echo $VERSION | $AWK 'BEGIN {FS = "."} {printf("%d%02d%02d", $1, $2, $3)}'`
 version_num=`echo $VERSION | $AWK 'BEGIN {FS = "."} {printf("%d%02d%02d", $1, $2, $3)}'`
 
 
 cat >>confdefs.h <<_ACEOF
 cat >>confdefs.h <<_ACEOF
@@ -11594,12 +11609,14 @@ cat >>confdefs.h <<_ACEOF
 _ACEOF
 _ACEOF
 
 
 
 
-for define in `sed -n -e 's/^+ \([^ ]*\) .*/\1/ p' pack/pack.cfg`; do
+for define in `sed -n -e 's/^+ \([^ ]*\) .*/\1/ p' $cfg`; do
  u_define="S_$define"
  u_define="S_$define"
  cat >>confdefs.h <<_ACEOF
  cat >>confdefs.h <<_ACEOF
 #define $u_define 1
 #define $u_define 1
 _ACEOF
 _ACEOF
 
 
+ CFG="$cfg"
+
 done
 done
 
 
 
 
@@ -12305,6 +12322,7 @@ s,@LIBOBJS@,$LIBOBJS,;t t
 s,@VERSION@,$VERSION,;t t
 s,@VERSION@,$VERSION,;t t
 s,@NUMVER@,$NUMVER,;t t
 s,@NUMVER@,$NUMVER,;t t
 s,@PACKNAME@,$PACKNAME,;t t
 s,@PACKNAME@,$PACKNAME,;t t
+s,@CFG@,$CFG,;t t
 s,@MOD_UPDIR@,$MOD_UPDIR,;t t
 s,@MOD_UPDIR@,$MOD_UPDIR,;t t
 s,@LTLIBOBJS@,$LTLIBOBJS,;t t
 s,@LTLIBOBJS@,$LTLIBOBJS,;t t
 CEOF
 CEOF

+ 1 - 1
src/Makefile.in

@@ -81,7 +81,7 @@ makesettings: makesettings.c
 	@$(CC) $(CFLAGS) -I$(top_srcdir) -I$(top_srcdir)/pack $(CPPFLAGS) makesettings.c -o makesettings
 	@$(CC) $(CFLAGS) -I$(top_srcdir) -I$(top_srcdir)/pack $(CPPFLAGS) makesettings.c -o makesettings
 	@$(STRIP) makesettings
 	@$(STRIP) makesettings
 
 
-stringfix: stringfix.c common.h ../config.h ../pack/pack.cfg eggdrop.h
+stringfix: stringfix.c common.h ../config.h eggdrop.h
 	@echo -e "Compiling: \033[1mstringfix\033[0m"
 	@echo -e "Compiling: \033[1mstringfix\033[0m"
 	@$(CC) $(CFLAGS) -I$(top_srcdir) -I$(top_srcdir)/pack $(CPPFLAGS) stringfix.c -o stringfix
 	@$(CC) $(CFLAGS) -I$(top_srcdir) -I$(top_srcdir)/pack $(CPPFLAGS) stringfix.c -o stringfix
 	@$(STRIP) stringfix
 	@$(STRIP) stringfix

+ 5 - 3
src/makesettings.c

@@ -6,6 +6,7 @@
 #include <sys/types.h>
 #include <sys/types.h>
 #include <unistd.h>
 #include <unistd.h>
 
 
+char *cfgfile = NULL;
 
 
 #define strncpyz(_target, _source, _len)        do {                    \
 #define strncpyz(_target, _source, _len)        do {                    \
         strncpy((_target), (_source), (_len) - 1);                      \
         strncpy((_target), (_source), (_len) - 1);                      \
@@ -344,7 +345,7 @@ int loadconfig(char **argv) {
     salt1[0] = salt2[0] = 0;
     salt1[0] = salt2[0] = 0;
     srand(now % (getpid() + getppid()));
     srand(now % (getpid() + getppid()));
     printf("Creating Salts");
     printf("Creating Salts");
-    if ((f = fopen("pack/pack.cfg", "a")) == NULL) {
+    if ((f = fopen(cfgfile, "a")) == NULL) {
       printf("Cannot created Salt-File.. aborting\n");
       printf("Cannot created Salt-File.. aborting\n");
       exit(1);
       exit(1);
     }
     }
@@ -424,7 +425,7 @@ int writeconfig(char **argv)
     exit(1);
     exit(1);
   }
   }
 fprintf(f, " \
 fprintf(f, " \
-/* DO NOT EDIT THIS FILE, EDIT pack/pack.cfg INSTEAD */\n\
+/* DO NOT EDIT THIS FILE, EDIT %s INSTEAD */\n\
 #include <stdio.h> \n\
 #include <stdio.h> \n\
 #include <stdlib.h> \n\
 #include <stdlib.h> \n\
 #include <string.h> \n\
 #include <string.h> \n\
@@ -434,7 +435,7 @@ fprintf(f, " \
 char packname[512] = \"\", shellhash[33] = \"\", bdhash[33] = \"\", dcc_prefix[2] = \"\", \
 char packname[512] = \"\", shellhash[33] = \"\", bdhash[33] = \"\", dcc_prefix[2] = \"\", \
 *owners = NULL, *hubs = NULL, *owneremail = NULL;\n\n\
 *owners = NULL, *hubs = NULL, *owneremail = NULL;\n\n\
 char *progname() {\n\
 char *progname() {\n\
-#ifdef S_PSCLOAK\n");
+#ifdef S_PSCLOAK\n", cfgfile);
 fprintf(f," \
 fprintf(f," \
   switch (random() %% %d) {\n", cfg.pscloakn + 1);
   switch (random() %% %d) {\n", cfg.pscloakn + 1);
 
 
@@ -485,6 +486,7 @@ return 1;
 
 
 int main(int argc, char **argv) {
 int main(int argc, char **argv) {
   mallocstruct();
   mallocstruct();
+  cfgfile = strdup(argv[0]);
   if (!loadconfig(argv)) return 1;
   if (!loadconfig(argv)) return 1;
   if (!checkconfig()) return 1;
   if (!checkconfig()) return 1;
   if (!writeconfig(argv)) return 1;
   if (!writeconfig(argv)) return 1;