Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update COMPILE-GUIDE (macOS and Cygwin / Windows) #1664

Open
wants to merge 8 commits into
base: develop
Choose a base branch
from
215 changes: 108 additions & 107 deletions doc/COMPILE-GUIDE
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
Eggdrop Compile Guide and FAQ
Last revised: May 14, 2023
Last revised: Jul 31, 2024
_____________________________________________________________________

Eggdrop Compile Guide and FAQ
Expand All @@ -18,13 +18,13 @@ Last revised: May 14, 2023
Contents:
Compile Guide:
A. Standard compile process (Linux, FreeBSD, NetBSD, OpenBSD, etc)
B. HP-UX B.11.*
C. Ultrix
D. macOS (previously OS X and originally Mac OS X)
E. AIX
F. IRIX
G. Solaris / SunOS
H. Cygwin / Windows
B. macOS (previously OS X and originally Mac OS X)
C. Cygwin / Windows
D. HP-UX B.11.*
E. Ultrix
F. AIX
G. IRIX
H. Solaris / SunOS
I. Haiku
J. Tcl Detection and Installation

Expand Down Expand Up @@ -114,80 +114,7 @@ Last revised: May 14, 2023
make install DEST=/home/user/otherdir


B. HP-UX B.11.*
Follow the standard compile process in Section A. To compile dynamically
(with module support), use 'make eggdrop' instead of 'make'.

During a linking in a dynamic build, you may experience an error such as:

gcc -pipe -fPIC -shared -o ../eggdrop bg.o botcmd.o botmsg.o botnet.o
chanprog.o cmds.o dcc.o dccutil.o dns.o flags.o language.o match.o
main.o mem.o misc.o misc_file.o modules.o net.o rfc1459.o tcl.o
tcldcc.o tclhash.o tclmisc.o tcluser.o userent.o userrec.o users.o
-L/usr/local/lib -ltcl8.4 -lm -ldld -lnsl md5/md5c.o compat/*.o `cat
mod/mod.xlibs`
/usr/ccs/bin/ld: DP relative code in file bg.o - shared library must be
position independent. Use +z or +Z to recompile.
collect2: ld returned 1 exit status
*** Error exit code 1

If you know the cause of this error, please contact the Eggheads
Development Team at [email protected].

Note that on HP-UX, the SHLIB_PATH environment variable should be used
instead of LD_LIBRARY_PATH.


C. Ultrix
There are some known problems with 'make' and Eggdrop on Ultrix systems.
We recommend using 'gmake' (GNU make) for this reason, as in the steps
below.

If your system does not have 'gmake', you can download it from:

ftp.gnu.org/pub/gnu/make/

It can be installed in your home directory, as with Tcl, but that is
beyond the scope of this document. Read the INSTALL file that comes with
gmake.

Following these steps should work:

1. Depending on what shell your using:

bash/ksh:
export LD_LIBRARY_PATH=<path to DIRECTORY containing Tcl library>:${LD_LIBRARY_PATH}

csh/tcsh/tclsh:
setenv LD_LIBRARY_PATH <path to DIRECTORY containing Tcl library>:${LD_LIBRARY_PATH}

2. Run the following command from your Eggdrop compilation directory
(this is all one command):

sh5 ./configure --with-tclinc='<full path to tcl.h>'
--with-tcllib='<full path to Tcl library>'

3. Type 'gmake config' or 'gmake iconfig' to configure modules.

4. Type 'gmake'. If you experience problems during linking, or while
building modules, try using 'gmake static', for a static build,
instead.

5. To install Eggdrop, type 'gmake install'.

This will install the Eggdrop in your home directory in a
directory called 'eggdrop' (i.e. /home/user/eggdrop).

If you want to install to a different directory, use:

gmake install DEST=<directory>

For example:

gmake install DEST=/home/user/otherdir


D. macOS
B. macOS
Follow the standard compile process in Section A. To compile dynamically
(with module support), use 'make eggdrop' instead of 'make'.

Expand Down Expand Up @@ -223,32 +150,8 @@ Last revised: May 14, 2023

./configure --with-tcl=/System/Volumes/Data/Library/Developer/CommandLineTools/SDKs/MacOSX12.1.sdk/System/Library/Frameworks/Tcl.framework/tclConfig.sh -with-sslinc=/usr/local/Cellar/openssl@3/3.0.7/include --with-ssllib=/usr/local/Cellar/openssl@3/3.0.7/lib

E. AIX
Follow the standard compile process in Section A. To compile dynamically
(with module support), use 'make eggdrop' instead of 'make'.

Note that on AIX, the LIBPATH environment variable should be used instead
of LD_LIBRARY_PATH.


F. IRIX
Follow the standard compile process in Section A. To compile dynamically
(with module support), use 'make eggdrop' instead of 'make'.

Note that on IRIX, the LD_LIBRARYN32_PATH and LD_LIBRARY64_PATH environment
variables should be used instead of LD_LIBRARY_PATH.


G. Solaris / SunOS
Follow the standard compile process in Section A. To compile dynamically
(with module support), use 'make eggdrop' instead of 'make'.

Note that on Solaris / SunOS, the LD_LIBRARY_PATH_32 and LD_LIBRARY_PATH_64
environment variables may need to be set instead of (or in addition to, to
be safe) LD_LIBRARY_PATH.


H. Cygwin / Windows
C. Cygwin / Windows
To compile and install Eggdrop on windows, perform the steps listed
below.

Expand Down Expand Up @@ -317,6 +220,104 @@ Last revised: May 14, 2023
cp /bin/cygz.dll 'C:/eggdrop' (if you selected compress.mod)


D. HP-UX B.11.*
Follow the standard compile process in Section A. To compile dynamically
(with module support), use 'make eggdrop' instead of 'make'.

During a linking in a dynamic build, you may experience an error such as:

gcc -pipe -fPIC -shared -o ../eggdrop bg.o botcmd.o botmsg.o botnet.o
chanprog.o cmds.o dcc.o dccutil.o dns.o flags.o language.o match.o
main.o mem.o misc.o misc_file.o modules.o net.o rfc1459.o tcl.o
tcldcc.o tclhash.o tclmisc.o tcluser.o userent.o userrec.o users.o
-L/usr/local/lib -ltcl8.4 -lm -ldld -lnsl md5/md5c.o compat/*.o `cat
mod/mod.xlibs`
/usr/ccs/bin/ld: DP relative code in file bg.o - shared library must be
position independent. Use +z or +Z to recompile.
collect2: ld returned 1 exit status
*** Error exit code 1

If you know the cause of this error, please contact the Eggheads
Development Team at [email protected].

Note that on HP-UX, the SHLIB_PATH environment variable should be used
instead of LD_LIBRARY_PATH.


E. Ultrix
There are some known problems with 'make' and Eggdrop on Ultrix systems.
We recommend using 'gmake' (GNU make) for this reason, as in the steps
below.

If your system does not have 'gmake', you can download it from:

ftp.gnu.org/pub/gnu/make/

It can be installed in your home directory, as with Tcl, but that is
beyond the scope of this document. Read the INSTALL file that comes with
gmake.

Following these steps should work:

1. Depending on what shell your using:

bash/ksh:
export LD_LIBRARY_PATH=<path to DIRECTORY containing Tcl library>:${LD_LIBRARY_PATH}

csh/tcsh/tclsh:
setenv LD_LIBRARY_PATH <path to DIRECTORY containing Tcl library>:${LD_LIBRARY_PATH}

2. Run the following command from your Eggdrop compilation directory
(this is all one command):

sh5 ./configure --with-tclinc='<full path to tcl.h>'
--with-tcllib='<full path to Tcl library>'

3. Type 'gmake config' or 'gmake iconfig' to configure modules.

4. Type 'gmake'. If you experience problems during linking, or while
building modules, try using 'gmake static', for a static build,
instead.

5. To install Eggdrop, type 'gmake install'.

This will install the Eggdrop in your home directory in a
directory called 'eggdrop' (i.e. /home/user/eggdrop).

If you want to install to a different directory, use:

gmake install DEST=<directory>

For example:

gmake install DEST=/home/user/otherdir


F. AIX
Follow the standard compile process in Section A. To compile dynamically
(with module support), use 'make eggdrop' instead of 'make'.

Note that on AIX, the LIBPATH environment variable should be used instead
of LD_LIBRARY_PATH.


G. IRIX
Follow the standard compile process in Section A. To compile dynamically
(with module support), use 'make eggdrop' instead of 'make'.

Note that on IRIX, the LD_LIBRARYN32_PATH and LD_LIBRARY64_PATH environment
variables should be used instead of LD_LIBRARY_PATH.


H. Solaris / SunOS
Follow the standard compile process in Section A. To compile dynamically
(with module support), use 'make eggdrop' instead of 'make'.

Note that on Solaris / SunOS, the LD_LIBRARY_PATH_32 and LD_LIBRARY_PATH_64
environment variables may need to be set instead of (or in addition to, to
be safe) LD_LIBRARY_PATH.


I. Haiku
If you compile Tcl from source and it breaks with a thread error
(and --disable-threads doesn't help), you can workaround this by
Expand Down