Check-in [64fcd6f371]
Overview
Comment:More Makefile cleanup and build more precompiled builds
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | seccomp
Files: files | file ages | folders
SHA1:64fcd6f371115e34f2da82a854ffe3796dbb4318
User & Date: rkeene on 2020-03-31 16:50:37
Other Links: manifest | tags
Context
2020-03-31
16:50
More Makefile cleanup and build more precompiled builds Leaf check-in: 64fcd6f371 user: rkeene tags: seccomp
16:25
Updated to not try to build seccomp dependencies unless seccomp is being used check-in: 0a04450d6f user: rkeene tags: seccomp
Changes

Modified Makefile from [453d3ea362] to [104b67b0fa].

     1         -CC        := gcc
     2         -CFLAGS    := -I. -Wall -W -pthread -O3 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE $(FILED_EXTRA_CFLAGS)
     3         -LDFLAGS   := -pthread $(FILED_EXTRA_LDFLAGS)
     4         -LIBS      := -lpthread $(FILED_EXTRA_LIBS)
     5         -MIMETYPES := /etc/httpd/mime.types
     6         -FILED_ADDITIONAL_DEPS = 
            1  +FILED_EXTRA_CFLAGS    := 
            2  +FILED_EXTRA_LDLAGS    := 
            3  +FILED_EXTRA_LIBS      := 
            4  +FILED_ADDITIONAL_DEPS := 
            5  +
            6  +CC         = gcc
            7  +CFLAGS     = -I. -Wall -W -pthread -O3 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE $(FILED_EXTRA_CFLAGS)
            8  +LDFLAGS    = -pthread $(FILED_EXTRA_LDFLAGS)
            9  +LIBS       = -lpthread $(FILED_EXTRA_LIBS)
           10  +MIMETYPES  = /etc/httpd/mime.types
     7     11   
     8     12   PREFIX := /usr/local
     9     13   prefix := $(PREFIX)
    10     14   bindir = $(prefix)/bin
    11     15   mandir = $(prefix)/share/man
    12     16   srcdir = .
    13     17   vpath %.c $(srcdir)
    14     18   
    15     19   ifeq ($(FILED_DO_SECCOMP),1)
    16         -CFLAGS += -DFILED_DO_SECCOMP=1
           20  +FILED_EXTRA_CFLAGS += -DFILED_DO_SECCOMP=1
    17     21   FILED_ADDTIONAL_DEPS += filed.seccomp.h
    18     22   endif
    19     23   
    20     24   all: filed
    21     25   
    22     26   filed: filed.o
    23     27   	$(CC) $(CFLAGS) $(LDFLAGS) -o "$@" $^ $(LIBS)

Modified build/build-precompiled from [bda883498c] to [e99d758cfd].

    17     17   
    18     18   # Compile everything, all at once
    19     19   idx=-1
    20     20   for tryCompilerDir in "$(readlink -f ~/root/cross-compilers)" "$(readlink -f ~/devel/build-cc/TMP)"; do
    21     21   	setup_cc="${tryCompilerDir}/setup-cc"
    22     22   
    23     23   	platforms=(
    24         -		$("${setup_cc}" | tail -n +2)
           24  +		$("${setup_cc}" 2>/dev/null | tail -n +2)
    25     25   	)
    26     26   
    27         -	for platform in "${platforms[@]}"; do
    28         -		idx=$[$idx + 1]
    29         -		(
    30         -			workdir="workdir-buildPrecompiled-${idx}-$(openssl rand 20 -hex)-platform-${platform}" || exit 1
    31         -			mkdir "${workdir}" || exit 1
    32         -			cd "${workdir}" || exit 1
    33         -
    34         -			eval $("${setup_cc}" "${platform}")
    35         -			make_extra=(
    36         -				-f ../Makefile
    37         -				srcdir=..
    38         -				CC="${CC}"
    39         -			)
    40         -
    41         -			case "${platform}" in
    42         -				*-musl-*|*-musl)
    43         -					make_extra=("${make_extra[@]}" FILED_EXTRA_LDFLAGS="-static")
           27  +	for platformBase in "${platforms[@]}"; do
           28  +		for platformAdditional in "" ".seccomp" ".fakechroot" ".internaldirhandle"; do
           29  +			case "${platformAdditional}" in
           30  +				*.seccomp|*.seccomp.*)
           31  +					# seccomp only works on i386/x86_64 for now
           32  +					case "${platformBase}" in
           33  +						i?86-*|x86_64-*)
           34  +							;;
           35  +						*)
           36  +							continue
           37  +							;;
           38  +					esac
    44     39   					;;
    45     40   			esac
    46     41   
    47         -			make "${make_extra[@]}" > filed.log 2>&1 </dev/null || mv filed.log filed-failed.log
    48         -		) &
           42  +			platform="${platformBase}${platformAdditional}"
           43  +			echo "-- ${platform}"
           44  +
           45  +			idx=$[$idx + 1]
           46  +			(
           47  +				workdir="workdir-buildPrecompiled-${idx}-$(openssl rand 20 -hex)-platform-${platform}" || exit 1
           48  +				mkdir "${workdir}" || exit 1
           49  +				cd "${workdir}" || exit 1
           50  +
           51  +				make_extra=(
           52  +					-f ../Makefile
           53  +					srcdir=..
           54  +				)
           55  +
           56  +				extra_cflags=""
           57  +				while true; do
           58  +					case "${platform}" in
           59  +						*.seccomp|*.seccomp.*)
           60  +							platform="$(echo "${platform}" | sed 's@\.seccomp@@')"
           61  +							make_extra+=(FILED_DO_SECCOMP=1)
           62  +							;;
           63  +						*.fakechroot|*.fakechroot.*)
           64  +							platform="$(echo "${platform}" | sed 's@\.fakechroot@@')"
           65  +							extra_cflags="${extra_cflags} -DFILED_FAKE_CHROOT=1"
           66  +							;;
           67  +						*.internaldirhandle|*.internaldirhandle.*)
           68  +							platform="$(echo "${platform}" | sed 's@\.internaldirhandle@@')"
           69  +							extra_cflags="${extra_cflags} -DFILED_DONT_REDIRECT_DIRECTORIES=1"
           70  +							;;
           71  +						*)
           72  +							break
           73  +							;;
           74  +					esac
           75  +				done
           76  +
           77  +				case "${platform}" in
           78  +					*-musl-*|*-musl)
           79  +						make_extra+=(FILED_EXTRA_LDFLAGS="-static")
           80  +						;;
           81  +				esac
           82  +
           83  +				eval $("${setup_cc}" "${platform}")
           84  +
           85  +				make_extra+=("CC=${CC}")
           86  +				if [ -n "${extra_cflags}" ]; then
           87  +					make_extra+=(FILED_EXTRA_CFLAGS="${extra_cflags}")
           88  +				fi
           89  +
           90  +				make "${make_extra[@]}" > filed.log 2>&1 </dev/null || mv filed.log filed-failed.log
           91  +			) &
           92  +		done
    49     93   	done
    50     94   done
    51     95   
    52     96   # Wait for that to get done
    53     97   wait
    54     98   
    55     99   # Rename the files into place