van az ilyenre is jopar megoldas, az egyik erdekes az ehhez hasonlo:
home@home:/tmp/test$ cat test.c
#include <stdio.h>
void
foo(void)
{
return;
}
int
main(int argc, char **argv)
{
HOOK_1
foo();
HOOK_2
}
home@home:/tmp/test$ cat Makefile
UNAME_S := $(shell uname -s)
ifeq ($(UNAME_S),Linux)
HOOK_1= 'printf("linux\n");'
HOOK_2= 'return (2);'
else
HOOK_1= 'return (1);'
HOOK_2= ''
endif
CFLAGS+= -DHOOK_1=${HOOK_1} -DHOOK_2=${HOOK_2}
all: test
viszont ezt meg lehet oldani szebben is, ha kiszervezed a hook-okat kulon platform specifikus fileokba es a megfelelohoz linkelsz.