nt9856x/tools/Makefile
2023-03-28 15:07:53 +08:00

260 lines
12 KiB
Makefile
Executable File

MULTI_CORES ?= $(shell grep -c ^processor /proc/cpuinfo)
TOOLS = ${PWD}
SHELL = /bin/bash
INSTALL_DIR = __install
ZLIB := zlib-1.2.8
LZO := lzo-2.08
E2FSPROGS := e2fsprogs-1.44.6
MTD_UTILS := mtd-utils-2.1.1
MEMTESTER := memtester-4.3.0
BONNIE := bonnie++-1.03e
ETHTOOL := ethtool-3.18
GDB := gdb-8.3.1
TERMCAP := termcap-1.3.1
NCURSES := ncurses-6.1
HTOP := htop-1.0.3
PROCPS := procps-3.2.8
SDCARD_TEST := sdcard_test.sh
I2C_TOOL := i2c-tools-3.1.2
STRESS := stress-1.0.4
STRESSNG := stress-ng-0.07.09
IOZONE := iozone-3.469
NETSTRESS := netstress_1.2.0
STRACE := strace-5.14
ALSA_LIB := alsa-lib-1.1.9
ALSA_UTILS := alsa-utils-1.1.9
OPROFILE := oprofile-0.9.9
GATOR := gator
VDBENCH := VDBench
PHYTOOL := phytool
LIBPCAP := libpcap-1.9.1
TCPDUMP := tcpdump-4.9.3
DOSFSTOOLS := dosfstools-4.1
FIO := fio-3.20
SYSSTAT := sysstat-12.5.2
USER_MEM_USAGE := user_space_mem_usage.sh
unexport CC
unexport CPP
unexport CXX
unexport LD
unexport AR
unexport NM
unexport STRIP
unexport OBJCOPY
unexport OBJDUMP
CC="${CROSS_COMPILE}gcc"
CXX="${CROSS_COMPILE}g++"
CPP="${CROSS_COMPILE}gcc"
check_exist = if [ ! -e $(1) ]; then tar -jxvf $(1).tar.bz2; fi
check_exist_cp = if [ -e $(INSTALL_DIR)/$(1) ]; then cp -arfv $(INSTALL_DIR)/$(1)/* ${ROOTFS_DIR}/rootfs/$(1); fi
.PHONY: mtd-utils bonnie ethtool iozone gdb htop procps memtester
all: mtd-utils bonnie ethtool iozone gdb htop procps memtester
init:
@if [ ! -e "${TOOLS}/${INSTALL_DIR}" ]; then \
mkdir ${TOOLS}/${INSTALL_DIR}; \
fi
@if [ -z "${CROSS_COMPILE}" ]; then \
echo "Please execute \"source build/envsetup.sh\" firstly. Stop."; exit 1; \
fi
zlib: init
@echo ">>>>>>>>>>>>>>>>>>> $@ compiling >>>>>>>>>>>>>>>>>>>"
$(call check_exist, ${ZLIB})
@cd ${ZLIB}; prefix=${TOOLS}/${INSTALL_DIR} CC=${CC} CFLAGS="-O4" ./configure; make; make install;
lzo: init
@echo ">>>>>>>>>>>>>>>>>>> $@ compiling >>>>>>>>>>>>>>>>>>>"
$(call check_exist, ${LZO})
@cd ${LZO}; ./configure --prefix=${TOOLS}/${INSTALL_DIR} CC=${CC} --host=${NVT_HOST}; make; make install;
e2fsprogs: init
@echo ">>>>>>>>>>>>>>>>>>> $@ compiling >>>>>>>>>>>>>>>>>>>"
$(call check_exist, ${E2FSPROGS})
@cd ${E2FSPROGS}; patch -p1 < misc-e4defrag.c-use-posix_fallocate64-if-fallocate64-is-unavailable; ./configure --prefix=${TOOLS}/${INSTALL_DIR} CC=${CC} --host=${NVT_HOST}; make -j$(MULTI_CORES); make install;
mtd-utils: zlib lzo e2fsprogs
@echo ">>>>>>>>>>>>>>>>>>> $@ compiling >>>>>>>>>>>>>>>>>>>"
$(call check_exist, ${MTD_UTILS})
@cd ${MTD_UTILS}; ./autogen.sh; ./configure LDFLAGS="-L${TOOLS}/${INSTALL_DIR}/lib" CPPFLAGS="-I${TOOLS}/${INSTALL_DIR}/include" CFLAGS="-I${TOOLS}/${INSTALL_DIR}/include" --host=${NVT_HOST} --prefix=${TOOLS}/${INSTALL_DIR} --without-crypto --without-xattr --without-zstd; make -j$(MULTI_CORES); make install-exec;
memtester: init
@echo ">>>>>>>>>>>>>>>>>>> $@ compiling >>>>>>>>>>>>>>>>>>>"
$(call check_exist, ${MEMTESTER})
@cd ${MEMTESTER}; echo "${CC} -O2 -DPOSIX -D_POSIX_C_SOURCE=200809L -D_FILE_OFFSET_BITS=64 -DTEST_NARROW_WRITES -c" > conf-cc; echo "${CC} -s" > conf-ld; make;
@cd ${MEMTESTER}; mkdir ${TOOLS}/${INSTALL_DIR}/bin/; cp -arvf memtester ${TOOLS}/${INSTALL_DIR}/bin/;
bonnie: init
@echo ">>>>>>>>>>>>>>>>>>> $@ compiling >>>>>>>>>>>>>>>>>>>"
$(call check_exist, ${BONNIE})
@cd ${BONNIE}; ./configure --host=${NVT_HOST} --prefix=${TOOLS}/${INSTALL_DIR}; make; mkdir -p ${TOOLS}/${INSTALL_DIR}/sbin/; cp bonnie++ zcav ${TOOLS}/${INSTALL_DIR}/sbin/;
ethtool: init
@echo ">>>>>>>>>>>>>>>>>>> $@ compiling >>>>>>>>>>>>>>>>>>>"
$(call check_exist, ${ETHTOOL})
@cd ${ETHTOOL}; ./configure --host=${NVT_HOST} --prefix=${TOOLS}/${INSTALL_DIR}; make; make install;
gdb: termcap ncurses
@echo ">>>>>>>>>>>>>>>>>>> $@ compiling >>>>>>>>>>>>>>>>>>>"
$(call check_exist, ${GDB})
@cd ${GDB}; ./configure LDFLAGS="-L${TOOLS}/${INSTALL_DIR}/lib" CXXFLAGS="-I${TOOLS}/${INSTALL_DIR}/include" --host=${NVT_HOST} --prefix=${TOOLS}/${INSTALL_DIR} --without-x --disable-gdbtk --disable-tui --without-included-regex --without-included-gettext; make -j$(MULTI_CORES); make install
termcap: init
@echo ">>>>>>>>>>>>>>>>>>> $@ compiling >>>>>>>>>>>>>>>>>>>"
$(call check_exist, ${TERMCAP})
@cd ${TERMCAP}; ./configure --host=${NVT_HOST} --prefix=${TOOLS}/${INSTALL_DIR}; make -j$(MULTI_CORES); make install;
ncurses: init
@echo ">>>>>>>>>>>>>>>>>>> $@ compiling >>>>>>>>>>>>>>>>>>>"
$(call check_exist, ${NCURSES})
@cd ${NCURSES}; ./configure LDFLAGS="-L${TOOLS}/${INSTALL_DIR}/lib" CXXFLAGS="-I${TOOLS}/${INSTALL_DIR}/include" --host=${NVT_HOST} --prefix=${TOOLS}/${INSTALL_DIR}; make -j$(MULTI_CORES); make install.libs install.data install.includes install.ncurses;
htop: ncurses
@echo ">>>>>>>>>>>>>>>>>>> $@ compiling >>>>>>>>>>>>>>>>>>>"
$(call check_exist, ${HTOP})
@cd ${HTOP}; ./configure --host=${NVT_HOST} --prefix=${TOOLS}/${INSTALL_DIR} --disable-unicode LDFLAGS="-static -L${TOOLS}/${INSTALL_DIR}/lib" CPPFLAGS="-I${TOOLS}/${INSTALL_DIR}/include" CFLAGS="-I${TOOLS}/${INSTALL_DIR}/include"; make; make install;
procps: ncurses
@echo ">>>>>>>>>>>>>>>>>>> $@ compiling >>>>>>>>>>>>>>>>>>>"
$(call check_exist, ${PROCPS})
@cd ${PROCPS}; make lib64=lib SHARED=0 CFLAGS="-I${TOOLS}/${INSTALL_DIR}/include/ncurses -I${TOOLS}/${INSTALL_DIR}/include" \
DESTDIR=${TOOLS}/${INSTALL_DIR} CC=${CC} LDFLAGS="-L${TOOLS}/${INSTALL_DIR}/lib" install="install -D" install
mmctest: init
@echo ">>>>>>>>>>>>>>>>>>> $@ compiling >>>>>>>>>>>>>>>>>>>"
@mkdir -p ${TOOLS}/${INSTALL_DIR}/usr/bin/; cp ${SDCARD_TEST} ${TOOLS}/${INSTALL_DIR}/usr/bin/
i2c_tool: init
@echo ">>>>>>>>>>>>>>>>>>> $@ compiling >>>>>>>>>>>>>>>>>>>"
$(call check_exist, ${I2C_TOOL})
@cd ${I2C_TOOL}; CC=${CC} make; prefix=${TOOLS}/${INSTALL_DIR}/usr make install;
stress: init
@echo ">>>>>>>>>>>>>>>>>>> $@ compiling >>>>>>>>>>>>>>>>>>>"
$(call check_exist, ${STRESS})
@cd ${STRESS}; ./configure --prefix=${TOOLS}/${INSTALL_DIR} --host=${NVT_HOST}; make; make install;
stress-ng: init
@echo ">>>>>>>>>>>>>>>>>>> $@ compiling >>>>>>>>>>>>>>>>>>>"
$(call check_exist, ${STRESSNG})
@cd ${STRESSNG}; make CC=${CC} HAVE_LIB_AIO=0 HAVE_SYS_CAP_H=0 HAVE_FLOAT_DECIMAL=0 HAVE_SECCOMP_H=0 HAVE_LIB_Z=0 DESTDIR=${TOOLS}/${INSTALL_DIR} install;
strace: init
@echo ">>>>>>>>>>>>>>>>>>> $@ compiling >>>>>>>>>>>>>>>>>>>"
$(call check_exist, ${STRACE})
@cd ${STRACE}; ./configure --host=${NVT_HOST} --target=${NVT_HOST} --prefix=${TOOLS}/${INSTALL_DIR}; make install
iozone: init
@echo ">>>>>>>>>>>>>>>>>>> $@ compiling >>>>>>>>>>>>>>>>>>>"
$(call check_exist, ${IOZONE})
@cd ${IOZONE}; ./configure --host=${NVT_HOST} --prefix=${TOOLS}/${INSTALL_DIR}; make linux CC=${CC}; mkdir -p ${TOOLS}/${INSTALL_DIR}/sbin/; cp iozone fileop pit_server ${TOOLS}/${INSTALL_DIR}/sbin/;
netstress: init
@echo ">>>>>>>>>>>>>>>>>>> $@ compiling >>>>>>>>>>>>>>>>>>>"
$(call check_exist, ${NETSTRESS})
@cd ${NETSTRESS}; mkdir -p ${TOOLS}/${INSTALL_DIR}/bin/; ${CC} -o ${TOOLS}/${INSTALL_DIR}/bin/$@ netstress.c
alsa_lib: init
@echo ">>>>>>>>>>>>>>>>>>> $@ compiling >>>>>>>>>>>>>>>>>>>"
$(call check_exist, ${ALSA_LIB})
@cd ${ALSA_LIB};./configure CC=${CC} --host=${NVT_HOST} --disable-python;make;make install DESTDIR=${TOOLS}/${INSTALL_DIR};
alsa_utils: init alsa_lib
@echo ">>>>>>>>>>>>>>>>>>> $@ compiling >>>>>>>>>>>>>>>>>>>"
$(call check_exist, ${ALSA_UTILS})
cd ${ALSA_UTILS};./configure --with-udev-rules-dir="" --with-systemdsystemunitdir="$(pkg-config systemd --variable=systemdsystemunitdir)" CC=${CC} --host=${NVT_HOST} --with-alsa-inc-prefix="${TOOLS}/${INSTALL_DIR}/usr/include" --with-alsa-prefix="${TOOLS}/${INSTALL_DIR}/usr/lib" --disable-alsamixer;make;make install DESTDIR=${TOOLS}/${INSTALL_DIR};
alsa_nvt_libs:
@if [ -e $(LIBRARY_DIR)/output/libaec.so ]; \
then \
cp $(LIBRARY_DIR)/output/libaec.so ${ROOTFS_DIR}/rootfs/usr/lib; \
fi
@if [ -e $(LIBRARY_DIR)/output/libanr.so ]; \
then \
cp $(LIBRARY_DIR)/output/libanr.so ${ROOTFS_DIR}/rootfs/usr/lib; \
fi
@if [ -e $(LIBRARY_DIR)/output/alsa-lib/libasound_module_pcm_aec.so ] && [ -e $(LIBRARY_DIR)/output/alsa-lib/libasound_module_pcm_anr.so ]; \
then \
cp -arfv $(LIBRARY_DIR)/output/alsa-lib ${ROOTFS_DIR}/rootfs/usr/lib; \
fi
gator: init
@echo ">>>>>>>>>>>>>>>>>>> $@ compiling >>>>>>>>>>>>>>>>>>>"
$(call check_exist, ${GATOR})
cd ${GATOR}/driver; make -C ${KERNELDIR} M=${PWD}/${GATOR}/driver ARCH=arm CROSS_COMPILE=${CROSS_COMPILE} modules; cp gator.ko ${TOOLS}/${INSTALL_DIR}
cd ${GATOR}/daemon; make CROSS_COMPILE=${CROSS_COMPILE} ;cp gatord ${TOOLS}/${INSTALL_DIR}
cp ${CROSS_TOOLCHAIN_PATH}/target/lib/libgcc_s.so.1 ${ROOTFS_DIR}/rootfs/lib
oprofile: init
@echo ">>>>>>>>>>>>>>>>>>> $@ compiling >>>>>>>>>>>>>>>>>>>"
$(call check_exist, ${OPROFILE})
@cd ${OPROFILE}; ./configure --prefix=${TOOLS}/${INSTALL_DIR} --host=${NVT_HOST} --with-kernel=${OUTPUT_DIR}; make -j${MULTI_CORES}; make install
VDBench: init
@echo ">>>>>>>>>>>>>>>>>>> $@ compiling >>>>>>>>>>>>>>>>>>>"
$(call check_exist, ${VDBENCH})
@mkdir -p ${TOOLS}/${INSTALL_DIR}/usr/bin/
@cd ${VDBENCH}; make -j${MULTI_CORES}; rm Bins/*.o; cp Bins/* ${TOOLS}/${INSTALL_DIR}/usr/bin/; cp -R Scripts ${TOOLS}/${INSTALL_DIR}/usr/bin/; cp VDBench.sh ${TOOLS}/${INSTALL_DIR}/usr/bin/
@cd ${VDBENCH}/ThirdBenches/coremark_v1.0; make -j${MULTI_CORES}
@make install
phytool: init
@echo ">>>>>>>>>>>>>>>>>>> $@ compiling >>>>>>>>>>>>>>>>>>>"
$(call check_exist, ${PHYTOOL})
@mkdir -p ${TOOLS}/${INSTALL_DIR}/usr/bin/
@cd ${PHYTOOL}; make CC=${CC} -j${MULTI_CORES}; rm *.o; cp phytool ${TOOLS}/${INSTALL_DIR}/usr/bin/
libpcap: init
@echo ">>>>>>>>>>>>>>>>>>> $@ compiling >>>>>>>>>>>>>>>>>>>"
$(call check_exist, ${LIBPCAP})
@mkdir -p ${TOOLS}/${INSTALL_DIR}/usr/bin/
@cd ${LIBPCAP}; ./configure --prefix=${TOOLS}/${INSTALL_DIR} --host=${NVT_HOST}; make -j${MULTI_CORES}; make install; rm *.o
tcpdump: libpcap
@echo ">>>>>>>>>>>>>>>>>>> $@ compiling >>>>>>>>>>>>>>>>>>>"
$(call check_exist, ${TCPDUMP})
@mkdir -p ${TOOLS}/${INSTALL_DIR}/usr/bin/
@cd ${TCPDUMP}; ./configure --prefix=${TOOLS}/${INSTALL_DIR} --host=${NVT_HOST}; make -j${MULTI_CORES}; make install; rm *.o
dosfstools: init
@echo ">>>>>>>>>>>>>>>>>>> $@ compiling >>>>>>>>>>>>>>>>>>>"
$(call check_exist, ${DOSFSTOOLS})
@cd ${DOSFSTOOLS}; ./configure --prefix=${TOOLS}/${INSTALL_DIR} --host=${NVT_HOST} --without-udev; make -j${MULTI_CORES}; make install
fio: init
@echo ">>>>>>>>>>>>>>>>>>> $@ compiling >>>>>>>>>>>>>>>>>>>"
$(call check_exist, ${FIO})
@cd ${FIO}; ./configure --build-static --prefix=${TOOLS}/${INSTALL_DIR}/fio; make; make install
sysstat: init
@echo ">>>>>>>>>>>>>>>>>>> $@ compiling >>>>>>>>>>>>>>>>>>>"
$(call check_exist, ${SYSSTAT})
@cd ${SYSSTAT}; ./configure --host=${NVT_HOST} --disable-documentation; make -j${MULTI_CORES}; make DESTDIR=${TOOLS}/${INSTALL_DIR} install;
user_mem_usage: init
@echo ">>>>>>>>>>>>>>>>>>> $@ compiling >>>>>>>>>>>>>>>>>>>"
@mkdir -p ${TOOLS}/${INSTALL_DIR}/usr/bin; cp -arfv ${USER_MEM_USAGE} ${TOOLS}/${INSTALL_DIR}/usr/bin;
install:
@echo ">>>>>>>>>>>>>>>>>>> $@ >>>>>>>>>>>>>>>>>>>"
@$(call check_exist_cp,bin)
@$(call check_exist_cp,sbin)
@$(call check_exist_cp,usr/bin)
@$(call check_exist_cp,usr/sbin)
@$(call check_exist_cp,usr/lib)
@$(call check_exist_cp,lib)
@$(call check_exist_cp,usr/share)
clean:
@echo ">>>>>>>>>>>>>>>>>>> Remove >>>>>>>>>>>>>>>>>>>"
@rm -rf ${TOOLS}/${INSTALL_DIR}
@rm -rf ${ZLIB} ${LZO} ${E2FSPROGS} ${MTD_UTILS} ${BONNIE} ${ETHTOOL} ${TERMCAP} ${GDB} ${NCURSES} ${HTOP} ${IPERF} ${PROCPS} ${I2C_TOOL} ${STRESS} ${STRESSNG} ${IOZONE} ${NETSTRESS} ${STRACE} ${MEMTESTER} ${ALSA_LIB} ${ALSA_UTILS} ${GATOR} ${VDBENCH}
@rm -rf ${PHYTOOL} ${LIBPCAP} ${TCPDUMP} ${DOSFSTOOLS} ${FIO} $(SYSSTAT)