mirror of
https://github.com/vel21ripn/nDPI.git
synced 2026-05-22 03:03:07 +00:00
This commit implements comprehensive improvements to the nDPI build system to enhance portability, enable parallel testing, and ensure reliable out-of-tree (VPATH) builds across all platforms. Changes: 1. Optimize library linking order (configure.ac, all Makefiles) - Reorder ADDITIONAL_LIBS to follow proper dependency hierarchy - Move low-level libraries (libm) to end of link line - Ensures compatibility with --as-needed linker flag - Improves LTO and static linking support 2. Fix VPATH build dependencies (all Makefiles) - Add explicit dependencies on generated headers (ndpi_config.h, ndpi_define.h) - Prevents race conditions in parallel builds (make -j) - Ensures headers exist before compilation starts 3. Replace mkdir -p with portable $(MKDIR_P) macro 4. Enable parallel test execution (configure.ac) - Add 'parallel-tests' option to AM_INIT_AUTOMAKE - Allows test suites to run concurrently during 'make check' 5. Add defensive .NOTPARALLEL directive (Makefile.am) - Prevents race conditions if 'make -j clean distclean' is run 6. Fix clean target completeness (src/lib/Makefile.in) - Remove all .so symlinks (libndpi.so, libndpi.so.N) - Add cleanup for Windows DLL files (*.dll) - Explicitly remove versioned shared libraries 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> Co-Authored-By: Ivan Nardi <nardi.ivan@gmail.com> |
||
|---|---|---|
| .. | ||
| calls.conf | ||
| categories.txt | ||
| config.txt | ||
| config_only_classification.txt | ||
| ja4_fingerprints.csv | ||
| Makefile.dpdk.in | ||
| Makefile.in | ||
| mining_hosts.txt | ||
| ndpi2timeline.py | ||
| ndpiReader.c | ||
| ndpiSimpleIntegration.c | ||
| obfuscation.conf | ||
| only_classification.conf | ||
| protos.txt | ||
| protos_huge.txt | ||
| protos_overwrite_domains.txt | ||
| reader_util.c | ||
| reader_util.h | ||
| README.DPDK | ||
| risky_domains.txt | ||
| sha1_fingerprints.csv | ||
| tcp_fingerprints.csv | ||
Prerequisites ------------- You need to install and compile DPDK in your HOME directory as explained in See http://core.dpdk.org/doc/quick-start/ for DPDK installation and setup Once DPDK is built make sure to create a symbolic link $ cd $ ln -s dpdk-18.08 DPDK so the build process will use the DPDK directory letting you have multiple DPDK versions available on your system Build ----- Everything will happen automagically but if you want to do it by hand do: make -f Makefile.dpdk Run Application --------------- Supposing to capture packets from device eno1 you can start the application as follows: sudo ./build/ndpiReader -c 1 --vdev=net_pcap0,iface=eno1 -- -v 1 NOTE: - ndpiReader without DPDK support sits in this directory - ndpiReader with DPDK support can be found inside the ./build directory