ifneq ($(OS),Windows_NT) OS := $(shell uname -s) endif CC := $(CROSS_COMPILE)gcc STRIP := $(CROSS_COMPILE)strip CFLAGS += -O2 -Wall -Wextra -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wpointer-arith -Wno-unused-parameter LDFLAGS += -lpthread SHARED = -shared -Wl,-soname,libhdhomerun$(LIBEXT) IF_DETECT := getifaddrs BINEXT := LIBEXT := .so ifeq ($(OS),Windows_NT) IF_DETECT := netdevice BINEXT := .exe LIBEXT := .dll LDFLAGS += -liphlpapi endif ifeq ($(OS),Linux) IF_DETECT := netlink LDFLAGS += -lrt endif LIBSRCS += hdhomerun_channels.c LIBSRCS += hdhomerun_channelscan.c LIBSRCS += hdhomerun_control.c LIBSRCS += hdhomerun_debug.c LIBSRCS += hdhomerun_device.c LIBSRCS += hdhomerun_device_selector.c LIBSRCS += hdhomerun_discover.c LIBSRCS += hdhomerun_os_posix.c LIBSRCS += hdhomerun_pkt.c LIBSRCS += hdhomerun_sock.c LIBSRCS += hdhomerun_sock_posix.c LIBSRCS += hdhomerun_sock_$(IF_DETECT).c LIBSRCS += hdhomerun_video.c ifeq ($(OS),Darwin) TARGET_X64 := -target x86_64-apple-macos10.11 TARGET_ARM64 := -target arm64-apple-macos11 all : hdhomerun_config libhdhomerun.dylib hdhomerun_config_x64 : hdhomerun_config.c $(LIBSRCS) $(CC) $(TARGET_X64) $(CFLAGS) $+ $(LDFLAGS) -o $@ $(STRIP) $@ hdhomerun_config_arm64 : hdhomerun_config.c $(LIBSRCS) $(CC) $(TARGET_ARM64) $(CFLAGS) $+ $(LDFLAGS) -o $@ $(STRIP) $@ hdhomerun_config : hdhomerun_config_x64 hdhomerun_config_arm64 lipo -create -output hdhomerun_config hdhomerun_config_x64 hdhomerun_config_arm64 libhdhomerun_x64.dylib : $(LIBSRCS) $(CC) $(TARGET_X64) $(CFLAGS) -DDLL_EXPORT -fPIC -dynamiclib $+ $(LDFLAGS) -o $@ libhdhomerun_arm64.dylib : $(LIBSRCS) $(CC) $(TARGET_ARM64) $(CFLAGS) -DDLL_EXPORT -fPIC -dynamiclib $+ $(LDFLAGS) -o $@ libhdhomerun.dylib : libhdhomerun_x64.dylib libhdhomerun_arm64.dylib lipo -create -output libhdhomerun.dylib libhdhomerun_x64.dylib libhdhomerun_arm64.dylib else all : hdhomerun_config$(BINEXT) libhdhomerun$(LIBEXT) hdhomerun_config$(BINEXT) : hdhomerun_config.c $(LIBSRCS) $(CC) $(CFLAGS) $+ $(LDFLAGS) -o $@ $(STRIP) $@ libhdhomerun$(LIBEXT) : $(LIBSRCS) $(CC) $(CFLAGS) -DDLL_EXPORT -fPIC $(SHARED) $+ $(LDFLAGS) -o $@ endif hdhomerun_discover_example$(BINEXT): hdhomerun_discover_example.c $(LIBSRCS) $(CC) $(CFLAGS) $+ $(LDFLAGS) -o $@ $(STRIP) $@ clean : -rm -f hdhomerun_config$(BINEXT) -rm -f libhdhomerun$(LIBEXT) -rm -f hdhomerun_discover_example$(BINEXT) distclean : clean %: @echo "(ignoring request to make $@)" .PHONY: all list clean distclean