Age | Commit message (Collapse) | Author | Files | Lines |
|
Currently, when doing a custom "make CFLAGS=...", we run into a compile
error as several necessary defines are not set. Therefore, use override
to always set those.
Reported-by: Marco Belmonte <mbelmonte@globalmedia.com>
Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
|
|
Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
|
|
Improve the build system, so that configuration files are installed
per tool basis. Also, introduce post_install targets, so that config
files can be altered in some way, e.g. done by trafgen. Moreover,
move custom targets from Extra to tool-specific Makefiles.
Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
|
|
Several of the tools install/uninstall files from $NCONF_FILES,
however if we call the uninstall target for a specific tool (e.g. `make
astraceroute_uninstall') but other tools depending on one or more of the
config files are still installed, the file is still removed
unconditionally. As it would require quite some logic in the Makefile
in order to detect installed tools and their dependencies, we just don't
uninstall the configuration files anymore.
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
|
|
We have recently changed VERSION_STRING to append CONFIG_RC at the
end of the string. Thus, for the build system, change it to
VERSION_SHORT where needed, e.g. in release targets where the "+"
appendix is not wished.
Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
|
|
Just a minor whitespace alignment, nothing else.
Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
|
|
For each build that has no tag name (thus for all commits except
releases), we add a "+" version appendix to indicate that it is
further than the rc tag itself, like in the kernel. Do this during
configure automatically. This is useful in case someone wants to
package a relase, so that the full version name indicates that.
Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
|
|
Split the build system into smaller manageable pieces, grouped by
context. In that sense, we can keep the most important information
within the Makefile itself, and group out misc bits and pieces that
we just include into it. E.g. 'Cmds' contains all defined commands
that we call from other locations, 'Template' contains the generic
build template for all tools, 'Extra' has pieces that need special
treatment for the tools to build and 'Misc' contains help and release
code. This makes it more manageable on the long run. While at it, I
also simplified some code and removed all Wflags expect "-Wall" as
we want to convert into "-Wall -Wextra -W" anyway.
Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
|
|
Lets just move it instead of symlink as there is no concrete need
for it.
Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
|
|
This silences a complaint if the toolkit is not built within a Git
repository:
...
[*] Checking libnet ... [YES]
fatal: Not a git repository (or any of the parent directories): .git
[*] Generating config.h ...
[*] Looks good! All tools will be built!
This is not problematic as the build can be done without any problems.
It will just have an empty Git id in --version output. So simply
silence this complaint and move on.
Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
|
|
Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
|
|
Place a newline after GIT_PEOPLE in the mail announcement target.
Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
|
|
Use git describe --always in the Makefile instead of git describe
as it can fail otherwise.
Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
|
|
If pkg-config doesn't find a library it prints an error to stderr.
Instead of directly printing them as part of the configure output,
redirect them to config.log and let the user know about it in case there
are any messages.
Suggested-by: Daniel Borkmann <dborkman@redhat.com>
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
|
|
To get the normal Makefile a bit cleaner, push the tool specific
build options into <tool>/Makefile.
Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
|
|
As curvetun needs to undergo some major cleanups, we exclude it from
the main build process for the moment until we have fixed all of it
in a non-rc release.
Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
|
|
In some part of the help text, we speak about <toolnames> in some
other <toolname>. Lets consolidate this to <tool> to avoid any
possible confusion.
Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
|
|
This patch is a bundle of multiple fixes.
1) Fix compilation of astraceroute when HAVE_LIBPCAP=1:
astraceroute doesn't need libpcap, so add an additional
guard/define to bpf.h and bpf_comp.c and netsniff-ng.c.
Also since we generate a config.h file, we do not need
to have this additional compile flag anymore.
2) Fix tstamping.{h,c} to use the configure script instead
of the Makefile. For doing this, also fix the object
inclusion in netsniff-ng/Makefile.
Last but not least, rename __WITH_... into HAVE_... as this
is more clean.
Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
|
|
While we're at it, also let configure script generate the config.h
file. The generation of it is currently quite static, but that could
change in future. While at it, we also generate a GITVERSION define,
that we will use for ``--version'' output of the individual tools for
being able to provide better support since we can see what concrete
commit people are using when building from Git repo.
Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
|
|
netsniff-ng uses libpcap only for high-level filter compiling.
Thus, let netsniff-ng not "hard-depend" on libpcap, but rather
disable filter compiling in case the user does not want to
install libpcap.
Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
|
|
Add a header comment to the configure script with Tobias as the primary
author, and also mention Tobias as an author in the Makefile itself for
his changes.
Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
|
|
Instead of halting out the entire build build if one dependency is not
available, only exclude the tools that link against it from building.
The configure script will now print a list of all tools that will be
built -- and in case some libaries are not available -- that will not be
built.
Also add checks for libcli and libnet which mausezahn depends on.
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
|
|
Streamline the Makfile targets by separating the clean targets (which
only affect the build tree) from the uninstall targets (affecting
files installed in the system).
Do this by renaming the 'distclean' target to 'uninstall' and removing
unnecessary aliases. The 'distclean' target serves now as a way to
remove build files and Config. The 'mrproper' will bring the source into
a pristine state as checked out from git.
Summary of the new/changed targets:
clean: remove all build related files (but not Config)
distclean: 'make clean' + remove Config
mrproper: remove all files not in git repository
uninstall: remove all files installed by us from the system, but not
affecting the build environment.
%_uninstall: tool specific uninstall
The following targets were removed:
mostlyclean, realclean and clobber.
Also the target names in the INSTALL file are adjusted.
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
|
|
Define CONFIG_OK in the Config file generated in the configure script
and check for it being defined in the Makefile before attempting
anything else. This way we can better inform the user that she needs to
run ./configure first.
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
|
|
Check whether pkg-config and ccache are in the PATH. A missing
pkg-config will cause the configure script to abort with an error. The
presence of ccache is written to Config and used by the Makefile to
conditionally make use of it.
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
|
|
In order to use an installation of NaCl provided by the distro or by
previous manual installation, provide a configure script which checks
for nacl's presence.
Also check of libnl-genl headers. More checks of the other libraries
depended on by netsniff-ng as well as checks for necessary kernel
headers should be added here too.
The configure script is preliminary and has not yet extensively been
tested on multiple systems.
The concept was inspired by the configure script of trinity and
iproute2.
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
|
|
For packaging, we cannot use -O3, -march etc, so have an option that
allows for distribution build and does less tuning.
Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
|
|
This is needed for distribution packaging purposes. Also remove the
warning, because -I/-L paths for nacl could be defined via cmdline
as well.
Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
|
|
Remove some unneeded stuff, and move other things around.
Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
|
|
Add HARDENING=1 build option and move all hardening-related GCC
flags into this condition. This allows the user to choose whether
or not he wants to have a hardened build with some possible performance
tradeoff at load/runtime.
Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
|
|
Add -z relro for linking, move --param ssp-buffer-size=4 to stack
protector flag, and more.
Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
|
|
Include long version string into tools when called with --version.
Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
|
|
Now that we have some man-pages, let them be installed via normal
``make install'' call.
Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
|
|
Remove some variables that are unused, but set. Also reorder and
comment some other sections.
Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
|
|
After some back and forth, we decided that it is easier to maintain
mausezahn in a staging directory until it is fully reworked and
cleaned up to be ready to be fully integrated. This way, it is better
than having it in a separate branch, and we can also accept patches
from outside more easily. Also, while at it, fix up some function
mismatches with libcli.
Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
|
|
Allow to define custom compile flags, e.g. ...
make CFLAGS="-O2 -Wall"
... and also allow to overwrite ccache variable:
make CCACHE= all
Also do some minor fixes when built with -O2 -Wall.
Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
|
|
The Documentation/ folder no longer exists. Either everything important
can be found in the man pages or other documentation files. Fix the
mentioning of Documentation/.
Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
|
|
When doing to successive ``make install'' ln will throw an error
that the symlink already exist, so simply force it to overwrite.
Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
|
|
Rename it to not confuse the build with header inclusions.
Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
|
|
Only have Makefile specific folders in the project root where the
binaries are stored, the rest should be part of the repository root.
Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
|
|
Maybe in short term future, before the next release, we will think
about putting the README file for users into DOCDIRE, since the
rest is not really interesting for users, but probably only for
developers.
Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
|
|
Still untested, since we did not yet tag a release, but for now,
also credit all involved people in a particular release.
Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
|
|
When we really clean up everything, also remove crap files that do
not belong to the Git tree.
Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
|
|
Add a uniform header comment to the two scripts as present in
other scripts in this repository as well. Also rename build_nacl.sh
into nacl_build.sh to stay conform in naming. For this, also update
all mentions of build_nacl.sh to nacl_build.sh.
Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
|
|
When setting a prefix from the build system, also pass this through the
hard coded strings for config file locations in the toolkit, so that the
installed files (which use PREFIX) can be properly found.
Suggested-by: Peter Stuge <peter@stuge.se>
Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
|
|
Do the announcement before the tagging is done, since we read out
the last tag in creating the shortlog.
Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
|
|
To automatically create the shortlog for the .MAIL_MSG, we use
git shortlog. However, we do not want to include old stuff, so
let only commits pass that were between the previous release and
now. (Untested for now, since there is no futher tag.)
Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
|
|
It is useful to have as much as possible scripted, to be less error-prone
and to have a uniform and simple workflow. Therefore, make the tagging,
tarball and mail message in a uniform way.
Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
|
|
Call pkg-config --cflags and pkg-config --libs to find correct CFLAGS
and LDFLAGS respectively.
Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
|
|
Call pkg-config --cflags and pkg-config --libs to find correct CFLAGS
and LDFLAGS respectively.
Signed-off-by: Peter Stuge <peter@stuge.se>
Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
|