1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162
|
#!/usr/bin/make -f
# This file is a part of zmk test system.
include zmk/internalTest.mk
t:: all all-sysroot install uninstall clean
$(eval $(ZMK.isolateHostToolchain))
# MacOS uses c++, GNU uses g++ by default.
# Pick one for test consistency.
%.log: ZMK.makeOverrides += CXX=c++
# Some logs behave as if a sysroot was requested.
%-sysroot.log: ZMK.makeOverrides += Toolchain.SysRoot=/path
# Test depends on source files
%.log: main.c main.cc main.cpp main.cxx main.m src/main.c
all: all.log
# C/C++/ObjC programs can be built.
GREP -qFx 'cc -MMD$(if $(ZMK.test.IsOutOfTreeBuild), -MF prog1-main.d) -c -o prog1-main.o $(ZMK.test.OutOfTreeSourcePath)main.c' <$<
GREP -qFx 'cc -o prog1 prog1-main.o' <$<
GREP -qFx 'c++ -MMD$(if $(ZMK.test.IsOutOfTreeBuild), -MF prog2-main.d) -c -o prog2-main.o $(ZMK.test.OutOfTreeSourcePath)main.cpp' <$<
GREP -qFx 'c++ -o prog2 prog2-main.o' <$<
GREP -qFx 'cc -MMD$(if $(ZMK.test.IsOutOfTreeBuild), -MF prog3-main.d) -c -o prog3-main.o $(ZMK.test.OutOfTreeSourcePath)main.m' <$<
GREP -qFx 'cc -o prog3 prog3-main.o -lobjc' <$<
GREP -qFx 'c++ -MMD$(if $(ZMK.test.IsOutOfTreeBuild), -MF prog4-main.d) -c -o prog4-main.o $(ZMK.test.OutOfTreeSourcePath)main.cxx' <$<
GREP -qFx 'c++ -o prog4 prog4-main.o' <$<
GREP -qFx 'c++ -MMD$(if $(ZMK.test.IsOutOfTreeBuild), -MF prog5-main.d) -c -o prog5-main.o $(ZMK.test.OutOfTreeSourcePath)main.cc' <$<
GREP -qFx 'c++ -o prog5 prog5-main.o' <$<
GREP -qFx 'cc -MMD$(if $(ZMK.test.IsOutOfTreeBuild), -MF src/prog6-main.d) -c -o src/prog6-main.o $(ZMK.test.OutOfTreeSourcePath)src/main.c' <$<
GREP -qFx 'cc -o prog6 src/prog6-main.o' <$<
GREP -qFx 'cc -MMD$(if $(ZMK.test.IsOutOfTreeBuild), -MF subdir/prog7-main.d) -c -o subdir/prog7-main.o $(ZMK.test.OutOfTreeSourcePath)main.c' <$<
GREP -qFx 'cc -o subdir/prog7 subdir/prog7-main.o' <$<
all-sysroot: all-sysroot.log
# C/C++/ObjC programs can be built against the configured sysroot.
GREP -qFx 'cc -MMD$(if $(ZMK.test.IsOutOfTreeBuild), -MF prog1-main.d) -c --sysroot=/path -o prog1-main.o $(ZMK.test.OutOfTreeSourcePath)main.c' <$<
GREP -qFx 'cc --sysroot=/path -o prog1 prog1-main.o' <$<
GREP -qFx 'c++ -MMD$(if $(ZMK.test.IsOutOfTreeBuild), -MF prog2-main.d) -c --sysroot=/path -o prog2-main.o $(ZMK.test.OutOfTreeSourcePath)main.cpp' <$<
GREP -qFx 'c++ --sysroot=/path -o prog2 prog2-main.o' <$<
GREP -qFx 'cc -MMD$(if $(ZMK.test.IsOutOfTreeBuild), -MF prog3-main.d) -c --sysroot=/path -o prog3-main.o $(ZMK.test.OutOfTreeSourcePath)main.m' <$<
GREP -qFx 'cc --sysroot=/path -o prog3 prog3-main.o -lobjc' <$<
GREP -qFx 'c++ -MMD$(if $(ZMK.test.IsOutOfTreeBuild), -MF prog4-main.d) -c --sysroot=/path -o prog4-main.o $(ZMK.test.OutOfTreeSourcePath)main.cxx' <$<
GREP -qFx 'c++ --sysroot=/path -o prog4 prog4-main.o' <$<
GREP -qFx 'c++ -MMD$(if $(ZMK.test.IsOutOfTreeBuild), -MF prog5-main.d) -c --sysroot=/path -o prog5-main.o $(ZMK.test.OutOfTreeSourcePath)main.cc' <$<
GREP -qFx 'c++ --sysroot=/path -o prog5 prog5-main.o' <$<
GREP -qFx 'cc -MMD$(if $(ZMK.test.IsOutOfTreeBuild), -MF src/prog6-main.d) -c --sysroot=/path -o src/prog6-main.o $(ZMK.test.OutOfTreeSourcePath)src/main.c' <$<
GREP -qFx 'cc --sysroot=/path -o prog6 src/prog6-main.o' <$<
GREP -qFx 'cc -MMD$(if $(ZMK.test.IsOutOfTreeBuild), -MF subdir/prog7-main.d) -c --sysroot=/path -o subdir/prog7-main.o $(ZMK.test.OutOfTreeSourcePath)main.c' <$<
GREP -qFx 'cc --sysroot=/path -o subdir/prog7 subdir/prog7-main.o' <$<
install: install.log
# C/C++/ObjC programs can be installed.
GREP -qFx 'install -d /usr/local/bin' <$<
GREP -qFx 'install -m 0755 prog1 /usr/local/bin/prog1' <$<
GREP -qFx 'install -m 0755 prog2 /usr/local/bin/prog2' <$<
GREP -qFx 'install -m 0755 prog3 /usr/local/bin/prog3' <$<
GREP -qFx 'install -m 0755 prog4 /usr/local/bin/prog4' <$<
GREP -qFx 'install -m 0755 prog5 /usr/local/bin/prog5' <$<
GREP -qFx 'install -m 0755 prog6 /usr/local/bin/prog6' <$<
GREP -qFx 'install -m 0755 subdir/prog7 /usr/local/bin/prog7' <$<
uninstall: uninstall.log
# C/C++/ObjC programs can be uninstalled.
GREP -qFx 'rm -f /usr/local/bin/prog1' <$<
GREP -qFx 'rm -f /usr/local/bin/prog2' <$<
GREP -qFx 'rm -f /usr/local/bin/prog3' <$<
GREP -qFx 'rm -f /usr/local/bin/prog4' <$<
GREP -qFx 'rm -f /usr/local/bin/prog5' <$<
GREP -qFx 'rm -f /usr/local/bin/prog6' <$<
GREP -qFx 'rm -f /usr/local/bin/prog7' <$<
clean: clean.log
# C/C++/ObjC programs can be cleaned.
GREP -qFx 'rm -f ./prog1-main.o' <$<
GREP -qFx 'rm -f ./prog1-main.d' <$<
GREP -qFx 'rm -f prog1' <$<
GREP -qFx 'rm -f ./prog2-main.o' <$<
GREP -qFx 'rm -f ./prog2-main.d' <$<
GREP -qFx 'rm -f prog2' <$<
GREP -qFx 'rm -f ./prog3-main.o' <$<
GREP -qFx 'rm -f ./prog3-main.d' <$<
GREP -qFx 'rm -f prog3' <$<
GREP -qFx 'rm -f ./prog4-main.o' <$<
GREP -qFx 'rm -f ./prog4-main.d' <$<
GREP -qFx 'rm -f prog4' <$<
GREP -qFx 'rm -f ./prog5-main.o' <$<
GREP -qFx 'rm -f ./prog5-main.d' <$<
GREP -qFx 'rm -f prog5' <$<
GREP -qFx 'rm -f src/prog6-main.o' <$<
GREP -qFx 'rm -f src/prog6-main.d' <$<
GREP -qFx 'rm -f prog6' <$<
GREP -qFx 'rm -f subdir/prog7' <$<
t:: all-exe
all-exe.log: ZMK.makeOverrides += exe=.exe
all-exe: all-exe.log
# C/C++ programs respect the .exe suffix (during building)
GREP -qFx 'cc -MMD$(if $(ZMK.test.IsOutOfTreeBuild), -MF prog1-main.d) -c -o prog1-main.o $(ZMK.test.OutOfTreeSourcePath)main.c' <$<
GREP -qFx 'cc -o prog1.exe prog1-main.o' <$<
GREP -qFx 'c++ -MMD$(if $(ZMK.test.IsOutOfTreeBuild), -MF prog2-main.d) -c -o prog2-main.o $(ZMK.test.OutOfTreeSourcePath)main.cpp' <$<
GREP -qFx 'c++ -o prog2.exe prog2-main.o' <$<
t:: install-custom-install-name
install-custom-install-name.log: ZMK.makeOverrides += prog1.InstallName=Prog1 subdir/prog7.InstallName=Prog7
install-custom-install-name: install-custom-install-name.log
# Program can have a custom InstallName
GREP -qFx 'install -d /usr/local/bin' <$<
GREP -qFx 'install -m 0755 prog1 /usr/local/bin/Prog1' <$<
GREP -qFx 'install -m 0755 subdir/prog7 /usr/local/bin/Prog7' <$<
t:: install-custom-install-mode
install-custom-install-mode.log: ZMK.makeOverrides += prog1.InstallMode=0700
install-custom-install-mode: install-custom-install-mode.log
# Program can have a custom InstallMode
GREP -qFx 'install -m 0700 prog1 /usr/local/bin/prog1' <$<
t:: install-custom-install-dir
install-custom-install-dir.log: ZMK.makeOverrides += prog1.InstallDir=/usr/local/sbin subdir/prog7.InstallDir=/usr/local/sbin
install-custom-install-dir: install-custom-install-dir.log
# Program can have a custom InstallDir
GREP -qFx 'install -m 0755 prog1 /usr/local/sbin/prog1' <$<
GREP -qFx 'install -m 0755 subdir/prog7 /usr/local/sbin/prog7' <$<
t:: install-custom-deep-install-dir
install-custom-deep-install-dir.log: ZMK.makeOverrides += prog1.InstallDir=/usr/local/lib/custom/bin subdir/prog7.InstallDir=/usr/local/lib/custom/bin
install-custom-deep-install-dir: install-custom-deep-install-dir.log
# Program with nested directories in InstallDir creates each directory.
GREP -qFx 'install -d /usr/local/lib' <$<
GREP -qFx 'install -d /usr/local/lib/custom' <$<
GREP -qFx 'install -d /usr/local/lib/custom/bin' <$<
GREP -qFx 'install -m 0755 prog1 /usr/local/lib/custom/bin/prog1' <$<
GREP -qFx 'install -m 0755 subdir/prog7 /usr/local/lib/custom/bin/prog7' <$<
t:: install-program-prefix
install-program-prefix.log: ZMK.makeOverrides += Configure.ProgramPrefix=prefix-
install-program-prefix: install-program-prefix.log
# Configured program prefix is used during the install phase.
GREP -qFx 'cc -MMD$(if $(ZMK.test.IsOutOfTreeBuild), -MF prog1-main.d) -c -o prog1-main.o $(ZMK.test.OutOfTreeSourcePath)main.c' <$<
GREP -qFx 'cc -o prog1 prog1-main.o' <$<
GREP -qFx 'install -m 0755 prog1 /usr/local/bin/prefix-prog1' <$<
GREP -qFx 'install -m 0755 subdir/prog7 /usr/local/bin/prefix-prog7' <$<
t:: install-program-suffix
install-program-suffix.log: ZMK.makeOverrides += Configure.ProgramSuffix=-suffix
install-program-suffix: install-program-suffix.log
# Configured program suffix is used during the install phase.
GREP -qFx 'cc -MMD$(if $(ZMK.test.IsOutOfTreeBuild), -MF prog1-main.d) -c -o prog1-main.o $(ZMK.test.OutOfTreeSourcePath)main.c' <$<
GREP -qFx 'cc -o prog1 prog1-main.o' <$<
GREP -qFx 'install -m 0755 prog1 /usr/local/bin/prog1-suffix' <$<
GREP -qFx 'install -m 0755 subdir/prog7 /usr/local/bin/prog7-suffix' <$<
t:: install-program-transform-name
install-program-transform-name.log: ZMK.makeOverrides += Configure.ProgramTransformName='s/prog\([1-9]\)/potato\1/g'
install-program-transform-name: install-program-transform-name.log
# Configured program transform expression is applied during the install phase.
GREP -qFx 'cc -MMD$(if $(ZMK.test.IsOutOfTreeBuild), -MF prog1-main.d) -c -o prog1-main.o $(ZMK.test.OutOfTreeSourcePath)main.c' <$<
GREP -qFx 'cc -o prog1 prog1-main.o' <$<
GREP -qFx 'install -m 0755 prog1 /usr/local/bin/potato1' <$<
GREP -qFx 'install -m 0755 subdir/prog7 /usr/local/bin/potato7' <$<
t:: install-exe
install-exe.log: ZMK.makeOverrides += exe=.exe
install-exe: install-exe.log
# C/C++ programs respect the .exe suffix (during installation)
GREP -qFx 'install -m 0755 prog1.exe /usr/local/bin/prog1.exe' <$<
|