[Hamlib-commits] Hamlib -- Ham radio control libraries branch master updated. afabcfffa5ccb480e7d78
Library to control radio transceivers and receivers
Brought to you by:
n0nb
From: Nate B. <n0...@us...> - 2022-06-18 12:09:34
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "Hamlib -- Ham radio control libraries". The branch, master has been updated via afabcfffa5ccb480e7d785c5f7e270c9779b8949 (commit) via 60635c15e774c727ae7eda585d697a4623088bcc (commit) via fb875be8e0c88da80df2605df030934fcb8a6ced (commit) via 9256be1939bdd82aa9b055ae515000f89f0b4441 (commit) via c8a844daf08640040297fcc1e66b85ca67402134 (commit) via e905b905891f16b24a3002b17f85e1c02ce63874 (commit) via eee02c86f861facaa20398c9983766a30c7e8c5b (commit) via 6f35b9740385c1a048545fcb5b4ece0ad4a87572 (commit) via 1beacd56bdaa3a41212c1225a8fc48113158a43b (commit) via 4d3e8ac240ae4109cc05dbf05c1e7591634e6370 (commit) via b443a6ac3fa56c95b7935c0505c97de63c391a33 (commit) via 87be0742bf300f8853aba9f0c41c25c47340ceea (commit) via 71edbcb5cc80f96312f6742274c38a127fe55234 (commit) via 2a2a529e05e9e3f8b4ef90436838e26890b7f805 (commit) via 593a31c19582e104c6d2a1a233c77d809c7a4963 (commit) via 9ce445d4ab0526df026787b3e11b71f1e94ec54d (commit) via a89dc73376b5b614a077aa698ecbd0d7fd8e3455 (commit) via 8c1bb1d4394ba5ace1c0950c9b21d00819b5d7c0 (commit) via f3b95e744af74c8c8a09148bc55abf533f6037a6 (commit) via 459e4ce7356b154d9c44a10cd6bfa6dc0c188967 (commit) via 17aa82dc12913c7c31b8b4927de8d391aa31345f (commit) via e66cf67a969757a017002d0029b04c93df52818e (commit) via e859d6a2c9c87cc29200c7bc30646ac8892b5e72 (commit) via a9e7bd443322bb4eb6be497557b5677fcecbea45 (commit) via c964ec6bfb965f9c0dfedcc419fe30aee2fb22d3 (commit) via 82fac3e0a695fc620e8a122ebe1487cd94e4c642 (commit) via 5b5b83b3f3b2f41e09fb67937d0f9273dfc6b4b8 (commit) via 5f26083face67ef02fd4bee99742bc64827ad81c (commit) via 534299d9fbdf644d571cfe03896f30982d5a5b69 (commit) via bba6a0b88b3feb37f72c09ff71986395a5700461 (commit) via 92ba0b92ace07c48195aaf82fcefee165e77cf0a (commit) via eb453db0568ec6e780a845717121dabcc7ebed8c (commit) via 25a2a00c126066df35b08448bb9575420df94906 (commit) via f7fe9dc2390423325a9a8bbf1c76c89bd09c92fa (commit) via 2a3fb3bb081b5920d8e6dd025b1c7c3c0e4ebb22 (commit) via dc89d085d001e10117cbeddf9e6f61226466623b (commit) via 24c18938c284300ff4cab7a1b516058dffa4de36 (commit) via e0d39b3dcb96e19020d51cfa94fcb803b7d88352 (commit) via cca8d2b4eddee24a8b1ae75ef82eb173575ee9b4 (commit) via 479c43afa1f307245af451a2f85836ef1107c099 (commit) via ce99f4c75de83b0a6cac834ada2b28bd2cbc62f7 (commit) via 3b8f52d03d3320d52b10187bca9b6209ed799ade (commit) via ad2f5047e0fdfdf41c547721d5d16a318e5bbea1 (commit) via c17bcaa3439f1727796a82901c0b1ea28db39d1a (commit) via 0373846f8b2c8832863849bf4641a94a60cdad18 (commit) via fda25c3bc32d9b7491a3f0bb280dad85dec6a007 (commit) via 5d8f2e80f3ef41e50488eea6ae1fd6c227455ba1 (commit) via 43765cd1111ca3620fe0ec7c0599b059f6cbf593 (commit) via e84502b443222722b11354369d86d0c52843b0d5 (commit) via fb86c8cf558f569dc69adca9271e99d8bea6f8d8 (commit) via 0f25083d576015d587d0d51ede838f66e6523027 (commit) via 6f5040904eaf14ab328bdca4b888c91af86a8e0b (commit) via 4360188643fe2168367ebad536a81016cea126de (commit) via d12ca2291659064a06ea3522e16b18c61094fc41 (commit) via b99e8988e09baabf82cbedd3a178d2b9ecbe6b34 (commit) via 447fa2cb5c9c49740ee978819f3d3a93dc337616 (commit) via 8652741301c736c4d8d984d45656da9b83cea31f (commit) via a468f0dee8199bfaf202f8c024762ae602a04bd4 (commit) via f555eceff9dd05c5f035f6701f3526d013cb84e9 (commit) via 739f6990679c62b1a74fd7ed52455b40ed8ffd61 (commit) via ce1d863a699debc45cd14227fed839f70d0ac74c (commit) via 860e280f85d1d7d92a4e11c1c19316f138964bfb (commit) via 763836881f1a523f44d8f3706a6da9489a3a8349 (commit) via 0acb549153509c930ff76c844e4adb16411ef249 (commit) via d40d55f50c944fcd958cf60f0dd6fda081637252 (commit) via 66b69f60a9ca2181e849df6a026b85afaed8bdd0 (commit) via 1c1d3394eb5cdf0fb1b1b0df5be99874be9e5ed0 (commit) via 644a72a40d8d29bf5c4d00a60a255ef01fe9a912 (commit) via 19c0193859cfe9f5ac27941ee26d859536a1b2b9 (commit) from 76405a1a9ae41c33db847bdf270876cad8680843 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit afabcfffa5ccb480e7d785c5f7e270c9779b8949 Merge: fb875be8 60635c15 Author: Michael Black <mdb...@ya...> Date: Fri Jun 17 17:32:40 2022 -0500 Merge pull request #1069 from cjtheham/master Fix windows makefile commit 60635c15e774c727ae7eda585d697a4623088bcc Author: CJ <cjt...@pr...> Date: Fri Jun 17 17:26:45 2022 -0500 fix windows makefile diff --git a/Makefile.Windows b/Makefile.Windows index 613e7c09..ce756f84 100755 --- a/Makefile.Windows +++ b/Makefile.Windows @@ -1,9710 +1,1993 @@ +# +# GNU Makefile for Hamlib (MSVC / clang-cl / MinGW). +# +# G. Vanem <gv...@ya...> 2019 - 2021. +# +THIS_FILE = Makefile.Windows +DATE = $(shell date +%d-%B-%Y) +ABI_VER = 4 + +# +# From 'configure.ac': +# +MAJOR_VER = 4 +MINOR_VER = 2 +VERSION = $(MAJOR_VER).$(MINOR_VER) + +# +# Choose your weapons. Do a 'make vclean' after changing any of these. +# +USE_LIBGD ?= 1 +USE_LIBINDI ?= 0 +USE_LIBREADLINE ?= 0 +USE_LIBUSB ?= 1 +USE_LIBUSRP ?= 1 +USE_LIBXML2 ?= 1 +USE_LUAJIT ?= 0 +USE_MP_COMPILE ?= 1 + +# +# Add support for a 'GnuRadio' device. +# Impossible as it is not up-to-date with current GnuRadio 3.9 API. +# +USE_GNURADIO ?= 0 + +# +# Use the Winsock tracing library (works badly for MinGW): +# https://github.com/gvanem/wsock-trace +# +USE_WSOCK_TRACE ?= 1 + +# +# Use only static external libraries to create '$(Hamlib_DLL)'. +# But '_Hamlib.pyd' and 'HamlibLua.dll' always uses '$(Hamlib_DLL)'. +# +USE_STATIC ?= 1 + +# +# Use '$(Hamlib_DLL)' for all C programs. +# And '$(Hamlib++_DLL)' for all C++ programs. +# +USE_DLLs_FOR_PROGRAMS ?= 1 + +# +# Set to 0 for no Python module. +# Set to 2 to create a Python 2.x module. +# Set to 3 to create a Python 3.x module. +# +USE_PY_BINDING ?= 3 + +# +# Use 'astyle' or 'clang-format' in the "%.i: %.c" preprocess rules below. +# +USE_ASTYLE ?= 0 +USE_CLANG_FORMAT ?= 0 + +# +# Change these as needed: +# (or create env-vars like 'LIBXML2_ROOT=c:/whatever/xml2'). +# +LIBXML2_ROOT ?= f:/MinGW32/src/Parsers/libxml2 +LIBICONV_ROOT ?= f:/MinGW32/src/libiconv-1.15 +LIBGD_ROOT ?= f:/MinGW32/src/Graphics/libgd-2.1.0 +LIBREADLINE_ROOT ?= f:/MinGW32/src/misc/libreadline +LUAJIT_ROOT ?= f:/MinGW32/src/LUA/LuaJIT +LUA5_ROOT ?= f:/MinGW32/src/LUA/Lua-5.4 +LIBUSB_ROOT ?= f:/MinGW32/src/USB/libusb +LIBUSRP_ROOT ?= f:/gv/dx-radio/Bor-IP/src/libusrp/usrp/host +GNURADIO_ROOT ?= f:/gv/dx-radio/GnuRadio/gv-build +LIBINDI_ROOT ?= f:/ProgramFiler/Stellarium/src/src/external/libindi + +PYTHON ?= py -3 + +ifeq ($(USE_LUAJIT),1) + LUA_ROOT = $(realpath $(LUAJIT_ROOT)) + LUA_LIB = $(call select, $(LUA_ROOT)/src/libluajit.a, $(LUA_ROOT)/src/luajit.lib) +else + LUA_ROOT = $(realpath $(LUA5_ROOT)) + LUA_LIB = $(call select, $(LUA_ROOT)/src/liblua.a, $(LUA_ROOT)/src/lua.lib) +endif + +MKDIR = mkdir +RMDIR = rmdir --parents +MOVE = mv --force +COPY = cp --preserve=timestamps --update + +# +# 'clang-cl' may not like stuff in '%CL'. +# Just remove it. +# +export CL= + +define Usage + + Usage: "$(MAKE) -f $(THIS_FILE) CC=[cl | clang-cl | gcc] [CPU=x86 | x64] [all | clean | vclean | realclean | depend | doxy_docs | py_module | lua_module]" + Specify CC=cl - use MSVC + Specify CC=clang-cl - use clang-cl + Specify CC=gcc - use MinGW +endef + +# +# Check the casing of '$CPU'. GNU-make is case-sensitive. +# +ifeq ($(CPU),) + CPU = x86 +endif + +ifeq ($(CPU),X86) + CPU = x86 +else ifeq ($(CPU),X64) + CPU = x64 +endif + +# +# If '$(CPU)=x64', build 64-bit version. Assuming your MinGW +# is dual-target capable and supports the '-mxx' option. +# Otherwise 32-bit programs. +# +ifeq ($(CPU),x64) + BITS = 64 + RCFLAGS = --target=pe-x86-64 + X_SUFFIX = _x64 +else + BITS = 32 + RCFLAGS = --target=pe-i386 + X_SUFFIX = +endif + +ifeq ($(CC),gcc) + OBJ_DIR = MinGW_obj + USE_MP_COMPILE := 0 + +else ifeq ($(CC),clang-cl) + OBJ_DIR = clang_obj + USE_MP_COMPILE := 0 + +else ifeq ($(CC),cl) + OBJ_DIR = MSVC_obj + +else + $(error $(Usage)) +endif + +ifeq ($(CC),gcc) + select = $(1) + CFLAGS = -m$(BITS) -O2 -g --include config.h + LDFLAGS = -m$(BITS) -Wl,--print-map,--sort-common + O = o + A = a + + # + # We want true Winsock2. Not some POSIX emulation that messes up things big-time. + # + CFLAGS += -D__USE_W32_SOCKETS + + WS2_32_LIB = -lws2_32 + +else + select = $(2) + CFLAGS = -nologo -MD -W3 -Zi -O2 -EHsc -DWIN32 -FI./config.h + LDFLAGS = -nologo -debug -incremental:no -verbose -machine:$(CPU) -nodefaultlib:uuid.lib + O = obj + A = lib + + ifeq ($(CC),clang-cl) + CFLAGS += -fms-compatibility -ferror-limit=5 + endif + + ifeq ($(USE_WSOCK_TRACE),1) + WS2_32_LIB = wsock_trace.lib + else + WS2_32_LIB = ws2_32.lib + endif +endif + +# +# Warning control: +# +ifeq ($(CC),gcc) + CFLAGS += -Wall \ + -Wno-format \ + -Wno-array-bounds \ + -Wno-missing-braces \ + -Wno-unused-function \ + -Wno-unused-variable \ + -Wno-shift-count-overflow + +else ifeq ($(CC),clang-cl) + CFLAGS += -Wall \ + -Wno-undef \ + -Wno-unused-function \ + -Wno-unused-macros \ + -Wno-unused-parameter \ + -Wno-unused-variable \ + -Wno-visibility \ + -Wno-unknown-pragmas \ + -Wno-ignored-attributes \ + -Wno-strict-prototypes \ + -Wno-reserved-id-macro \ + -Wno-shadow \ + -Wno-cast-align \ + -Wno-cast-qual \ + -Wno-shorten-64-to-32 \ + -Wno-pedantic \ + -Wno-format-pedantic \ + -Wno-format-nonliteral \ + -Wno-switch-enum \ + -Wno-covered-switch-default \ + -Wno-sign-conversion \ + -Wno-sign-compare \ + -Wno-double-promotion \ + -Wno-assign-enum \ + -Wno-unreachable-code \ + -Wno-unreachable-code-return \ + -Wno-unreachable-code-break \ + -Wno-c++98-compat-pedantic \ + -Wno-old-style-cast \ + -Wno-extra-semi-stmt \ + -Wno-missing-field-initializers \ + -Wno-missing-noreturn \ + -Wno-missing-prototypes \ + -Wno-missing-variable-declarations \ + -Wno-bad-function-cast \ + -Wno-redundant-parens \ + -Wno-tautological-unsigned-zero-compare \ + -Wno-nonportable-system-include-path \ + -Wno-implicit-int-conversion \ + -Wno-float-conversion \ + -Wno-float-equal \ + -Wno-implicit-float-conversion \ + -Wno-implicit-fallthrough \ + -Wno-shift-count-overflow \ + -Wno-documentation \ + -Wno-documentation-unknown-command \ + -Wno-gnu-zero-variadic-macro-arguments \ + -Wno-zero-as-null-pointer-constant + + ifeq ($(USE_LIBUSRP),1) + CFLAGS += -Wno-suggest-override \ + -Wno-suggest-destructor-override + endif + + # + # When on AppVeyor, do not suppress these warnings since they have an old 'clang-cl'. + # + ifeq ($(APPVEYOR_PROJECT_NAME)x,x) + CFLAGS += -Wno-implicit-int-float-conversion \ + -Wno-deprecated-copy-dtor + endif + + # + # This warning is kinda important: + # + # rigs/dummy/dummy.h(46,5): warning: 'netrigctl_get_vfo_mode' redeclared without 'dllimport' attribute: previous + # 'dllimport' ignored [-Winconsistent-dllimport] + # int netrigctl_get_vfo_mode(RIG *); + # ^ + # So do not add a '-Wno-inconsistent-dllimport'. + # + # And so is this '-Wconditional-uninitialized'. + # +else + CFLAGS += -wd4018 -wd4101 -wd4142 -wd4146 -wd4244 -wd4251 -wd4305 -wd4700 -wd4800 + + ifeq ($(BITS),64) + CFLAGS += -wd4267 + endif +endif + +# CFLAGS += -DHASH_BLOOM + +# +# External libraries for '$(Hamlib_DLL)': +# +EX_LIBS = $(WS2_32_LIB) + +# +# The DLL and library names: +# +Hamlib_DLL = Hamlib-$(ABI_VER).dll +Hamlib_IMP_LIB = $(call select, libHamlib-$(ABI_VER).dll.a, Hamlib-$(ABI_VER)_imp.lib) +Hamlib_STAT_LIB = $(call select, libHamlib-$(ABI_VER).a, Hamlib-$(ABI_VER).lib) + +# +# The C++ library +# +Hamlib++_DLL = Hamlib-$(ABI_VER)++.dll +Hamlib++_IMP_LIB = $(call select, libHamlib-$(ABI_VER)++.dll.a, Hamlib-$(ABI_VER)++_imp.lib) + +# +# The internal utility library; '$(hamlib_misc_SRC)'. +# +misc_LIB = $(call select, libmisc.a, misc.lib) + +# +# What to build: +# +TARGETS = $(Hamlib_STAT_LIB) $(Hamlib_DLL) \ + $(Hamlib_IMP_LIB) $(misc_LIB) + +# +# The C++ interface is dynamic only. +# +TARGETS += $(Hamlib++_DLL) $(Hamlib++_IMP_LIB) + +# +# For 'test/*.c' only. They all use '$(Hamlib_DLL)'. +# +PROG_LIBS = $(WS2_32_LIB) $(call select, -lwinpthread) + +ifeq ($(USE_DLLs_FOR_PROGRAMS),1) + # + # A strangely named macro ('-DUSE_Hamlib_DLL' would be better), but + # this will let all .c and .cc programs to use 'Hamlib-$(ABI_VER).dll' + # + PROG_CFLAGS = -DDLL_EXPORT + + # + # Use 'Hamlib-$(ABI_VER).dll' for C programs. + # + C_PROG_LIBS = $(misc_LIB) $(Hamlib_IMP_LIB) + + # + # Use 'Hamlib-$(ABI_VER)++.dll and 'Hamlib-$(ABI_VER).dll' for C++ programs. + # The library order matter for MinGW only. + # + CPP_PROG_LIBS = $(Hamlib_IMP_LIB) $(Hamlib++_IMP_LIB) +else + PROG_CFLAGS = + PROG_LIBS = $(EX_LIBS) + C_PROG_LIBS = $(Hamlib_STAT_LIB) $(misc_LIB) + CPP_PROG_LIBS = $(Hamlib_STAT_LIB) $(misc_LIB) $(Hamlib++_IMP_LIB) +endif + +# +# For 'rigs/kit/usrp.c' and 'rigs/kit/usrp_impl.cc'. +# This needs Boost too. Untested by me. +# +ifeq ($(USE_LIBUSRP),1) + CFLAGS += -DHAVE_USRP \ + -I$(LIBUSRP_ROOT)/include \ + -I$(LIBUSRP_ROOT)/include/usrp + + EX_LIBS += $(call select, $(LIBUSRP_ROOT)/libUSRP.a, \ + $(LIBUSRP_ROOT)/libUSRP_imp.lib) + + hamlib_CC_SRC = kit/usrp_impl.cc +endif + +ifeq ($(USE_LIBUSB),1) + CFLAGS += -DHAVE_LIBUSB \ + -DHAVE_LIBUSB_H \ + -I$(LIBUSB_ROOT)/libusb + + ifeq ($(USE_STATIC),1) + EX_LIBS += $(call select, $(LIBUSB_ROOT)/libusb-1.0.a -ladvapi32, \ + $(LIBUSB_ROOT)/libusb-1.0.lib advapi32.lib) + else + EX_LIBS += $(call select, $(LIBUSB_ROOT)/libusb-1.0.dll.a, \ + $(LIBUSB_ROOT)/libusb-1.0_imp.lib) + endif +endif + +# +# Untested; does it exist except for MinGW? +# +ifeq ($(USE_LIBREADLINE),1) + CFLAGS += -DHAVE_LIBREADLINE \ + -I$(LIBREADLINE_ROOT)/include + + EX_LIBS += $(call select, $(LIBREADLINE_ROOT)/libreadline.a, \ + $(LIBREADLINE_ROOT)/libreadline.lib) +endif + +CFLAGS += -I. \ + -I./include \ + -I./include/hamlib \ + -I./lib \ + -I./src \ + -I./tests + +ifneq ($(CC),gcc) + CFLAGS += -I$(OBJ_DIR) + EX_LIBS += user32.lib kernel32.lib +endif + +c_to_obj = $(addprefix $(OBJ_DIR)/, \ + $(notdir $(1:.c=.$(O)))) + +cc_to_obj = $(addprefix $(OBJ_DIR)/, \ + $(notdir $(1:.cc=.$(O)))) + +cpp_to_obj = $(addprefix $(OBJ_DIR)/, \ + $(notdir $(1:.cpp=.$(O)))) + +c_to_i = $(notdir $(1:.c=.i)) +cc_to_i = $(notdir $(1:.cc=.i)) + +VPATH = rigs/dummy src tests c++ amplifiers/elecraft + +VPATH += $(addprefix rigs/, \ + adat \ + alinco \ + aor \ + barrett \ + dorji \ + drake \ + elad \ + flexradio \ + icmarine \ + icom \ + jrc \ + kachina \ + kenwood \ + kit \ + lowe \ + pcr \ + prm80 \ + racal \ + rft \ + rs \ + skanti \ + tapr \ + tentec \ + tuner \ + uniden \ + winradio \ + wj \ + yaesu) + +VPATH += $(addprefix rotators/, \ + amsat \ + ars \ + celestron \ + cnctrk \ + easycomm \ + ether6 \ + fodtrack \ + gs232a \ + heathkit \ + indi \ + ioptron \ + m2 \ + meade \ + prosistel \ + rotorez \ + sartek \ + satel \ + spid \ + ts7400) + +# +# For compiling 'HamlibPy2_wrap.c,' 'HamlibPy3_wrap.c' and 'HamlibLua_wrap.c'. +# +VPATH += $(OBJ_DIR) + +# +# All of these use '$(Hamlib_DLL)': +# +TESTS_PROGS = ampctl.exe \ + ampctld.exe \ + dumpmem.exe \ + example.exe \ + listrigs.exe \ + rigctl.exe \ + rigctld.exe \ + rigctlcom.exe \ + rigsmtr.exe \ + rigswr.exe \ + rig_bench.exe \ + rotctl.exe \ + rotctld.exe \ + simyaesu.exe \ + testbcd.exe \ + testfreq.exe \ + testloc.exe \ + testrig.exe \ + testrigcaps.exe \ + testrigopen.exe \ + testtrn.exe + +ifneq ($(APPVEYOR_PROJECT_NAME),) + # + # TODO: build with 'LIBUSB_ROOT = ./CI/libusb', 'LIBXML2_ROOT = ./CI/libxml2' etc. + # when running via 'appveyor.yml' + # +endif + +ifeq ($(USE_LIBXML2),1) + TESTS_PROGS += rigmem.exe + PROG_CFLAGS += -I$(LIBXML2_ROOT)/include \ + -I$(LIBICONV_ROOT)/include \ + -DHAVE_XML2 + + # + # Use the dynamic version of 'libxml2'. + # I.e. do not set 'PROG_CFLAGS += -DLIBXML_STATIC'. + # Otherwise we could need to link to a static 'Iconv', 'Zlib' and + # a 'liblzma' too (depending on how 'libxml2' was built). + # + XML2_LIB = $(call select, $(LIBXML2_ROOT)/libxml2.dll.a, \ + $(LIBXML2_ROOT)/xml2_imp.lib) +endif + +ifeq ($(USE_LIBGD),1) + TESTS_PROGS += rigmatrix.exe + PROG_CFLAGS += -I$(LIBGD_ROOT)/src +endif + +# +# This always uses '$(Hamlib++_DLL)'. +# +TESTS_PROGS += testcpp.exe + +# +# All .c-files for '$(Hamlib_DLL)'. +# Except for those in '$(hamlib_misc_SRC)' which do not need to be exported. +# +hamlib_C_SRC = $(addprefix src/, \ + amp_conf.c \ + amp_reg.c \ + amp_settings.c \ + amplifier.c \ + cal.c \ + cm108.c \ + conf.c \ + debug.c \ + event.c \ + ext.c \ + extamp.c \ + gpio.c \ + locator.c \ + iofunc.c \ + mem.c \ + misc.c \ + microham.c \ + network.c \ + parallel.c \ + register.c \ + rig.c \ + rot_conf.c \ + rot_ext.c \ + rot_reg.c \ + rot_settings.c \ + rotator.c \ + serial.c \ + settings.c \ + sleep.c \ + tones.c \ + usb_port.c) + +hamlib_C_SRC += $(addprefix rigs/dummy/, \ + amp_dummy.c \ + dummy.c \ + dummy_common.c \ + flrig.c \ + netampctl.c \ + netrigctl.c \ + netrotctl.c \ + rot_dummy.c \ + trxmanager.c) + +hamlib_C_SRC += $(addprefix rigs/adat/, \ + adat.c \ + adt_200a.c) + +hamlib_C_SRC += $(addprefix rigs/alinco/, \ + alinco.c \ + dx77.c \ + dxsr8.c) + +hamlib_C_SRC += $(addprefix rigs/aor/, \ + aor.c \ + ar2700.c \ + ar3000.c \ + ar3030.c \ + ar5000.c \ + ar7030.c \ + ar7030p.c \ + ar7030p_utils.c \ + ar8000.c \ + ar8200.c \ + ar8600.c \ + sr2200.c) + +hamlib_C_SRC += $(addprefix rigs/barrett/, \ + 950.c \ + barrett.c) + +hamlib_C_SRC += $(addprefix rigs/dorji/, \ + dorji.c \ + dra818.c) + +hamlib_C_SRC += $(addprefix rigs/drake/, \ + drake.c \ + r8a.c \ + r8b.c) + +hamlib_C_SRC += $(addprefix rigs/elad/, \ + elad.c \ + fdm_duo.c) + +hamlib_C_SRC += $(addprefix rigs/flexradio/, \ + dttsp.c \ + flexradio.c \ + sdr1k.c) + +hamlib_C_SRC += $(addprefix rigs/icmarine/, \ + icm700pro.c \ + icm710.c \ + icm802.c \ + icm803.c \ + icmarine.c) + +hamlib_C_SRC += $(addprefix rigs/icom/, \ + delta2.c \ + frame.c \ + ic78.c \ + ic92d.c \ + ic271.c \ + ic275.c \ + ic471.c \ + ic475.c \ + ic703.c \ + ic706.c \ + ic707.c \ + ic718.c \ + ic725.c \ + ic726.c \ + ic728.c \ + ic735.c \ + ic736.c \ + ic737.c \ + ic738.c \ + ic746.c \ + ic751.c \ + ic756.c \ + ic761.c \ + ic765.c \ + ic775.c \ + ic781.c \ + ic785x.c \ + ic820h.c \ + ic821h.c \ + ic910.c \ + ic970.c \ + ic1275.c \ + ic2730.c \ + ic7000.c \ + ic7100.c \ + ic7200.c \ + ic7300.c \ + ic7410.c \ + ic7600.c \ + ic7610.c \ + ic7700.c \ + ic7800.c \ + ic9100.c \ + icom.c \ + icr6.c \ + icr10.c \ + icr20.c \ + icr30.c \ + icr71.c \ + icr72.c \ + icr75.c \ + icr7000.c \ + icr8500.c \ + icr8600.c \ + icr9000.c \ + icr9500.c \ + icrx7.c \ + id1.c \ + id31.c \ + id4100.c \ + id51.c \ + id5100.c \ + omni.c \ + optoscan.c \ + os456.c \ + os535.c \ + perseus.c \ + x108g.c) + +hamlib_C_SRC += $(addprefix rigs/jrc/, \ + jrc.c \ + nrd525.c \ + nrd535.c \ + nrd545.c) + +hamlib_C_SRC += $(addprefix rigs/kachina/, \ + 505dsp.c \ + kachina.c) + +hamlib_C_SRC += $(addprefix rigs/kenwood/, \ + elecraft.c \ + flex.c \ + flex6xxx.c \ + ic10.c \ + k2.c \ + k3.c \ + kenwood.c \ + pihpsdr.c \ + r5000.c \ + th.c \ + thd7.c \ + thd72.c \ + thd74.c \ + thf6a.c \ + thf7.c \ + thg71.c \ + tmd700.c \ + tmd710.c \ + tmv7.c \ + transfox.c \ + trc80.c \ + ts50s.c \ + ts140.c \ + ts440.c \ + ts450s.c \ + ts480.c \ + ts570.c \ + ts590.c \ + ts680.c \ + ts690.c \ + ts711.c \ + ts790.c \ + ts811.c \ + ts850.c \ + ts870s.c \ + ts930.c \ + ts940.c \ + ts950.c \ + ts990s.c \ + ts2000.c \ + xg3.c) + +hamlib_C_SRC += $(addprefix rigs/kit/, \ + dds60.c \ + drt1.c \ + dwt.c \ + elektor304.c \ + elektor507.c \ + fifisdr.c \ + funcube.c \ + hiqsdr.c \ + kit.c \ + miniVNA.c \ + pcrotor.c \ + rs_hfiq.c \ + si570avrusb.c \ + usrp.c) + +hamlib_C_SRC += $(addprefix rigs/lowe/, \ + hf235.c \ + lowe.c) + +hamlib_C_SRC += $(addprefix rigs/pcr/, \ + pcr.c \ + pcr100.c \ + pcr1000.c \ + pcr1500.c \ + pcr2500.c) + +hamlib_C_SRC += $(addprefix rigs/prm80/, \ + prm80.c \ + prm8060.c) + +hamlib_C_SRC += $(addprefix rigs/racal/, \ + ra37xx.c \ + ra3702.c \ + ra6790.c \ + racal.c) + +hamlib_C_SRC += $(addprefix rigs/rft/, \ + ekd500.c \ + rft.c) + +hamlib_C_SRC += $(addprefix rigs/rs/, \ + eb200.c \ + esmc.c \ + gp2000.c \ + rs.c \ + xk2100.c) + +hamlib_C_SRC += $(addprefix rigs/skanti/, \ + skanti.c \ + trp8000.c \ + trp8255.c) + +hamlib_C_SRC += $(addprefix rigs/tapr/, \ + dsp10.c \ + tapr.c) + +hamlib_C_SRC += $(addprefix rigs/tentec/, \ + argonaut.c \ + jupiter.c \ + omnivii.c \ + orion.c \ + paragon.c \ + pegasus.c \ + rx320.c \ + rx331.c \ + rx340.c \ + rx350.c \ + tentec.c \ + tentec2.c \ + tt550.c) + +hamlib_C_SRC += $(addprefix rigs/tuner/, \ + tuner.c \ + v4l.c \ + v4l2.c) + +hamlib_C_SRC += $(addprefix rigs/uniden/, \ + bc245.c \ + bc250.c \ + bc780.c \ + bc895.c \ + bc898.c \ + bcd396t.c \ + bcd996t.c \ + pro2052.c \ + uniden.c \ + uniden_digital.c) + +hamlib_C_SRC += $(addprefix rigs/winradio/, \ + g303.c \ + g305.c \ + g313-win.c \ + winradio.c \ + wr1000.c \ + wr1500.c \ + wr1550.c \ + wr3100.c \ + wr3150.c \ + wr3500.c \ + wr3700.c) + +hamlib_C_SRC += $(addprefix rigs/wj/, \ + wj.c \ + wj8888.c) + +hamlib_C_SRC += $(addprefix rigs/yaesu/, \ + frg100.c \ + frg8800.c \ + frg9600.c \ + ft100.c \ + ft450.c \ + ft600.c \ + ft736.c \ + ft747.c \ + ft757gx.c \ + ft767gx.c \ + ft817.c \ + ft840.c \ + ft847.c \ + ft857.c \ + ft890.c \ + ft891.c \ + ft897.c \ + ft900.c \ + ft920.c \ + ft950.c \ + ft980.c \ + ft990.c \ + ft991.c \ + ft1000d.c \ + ft1000mp.c \ + ft1200.c \ + ft2000.c \ + ft3000.c \ + ft5000.c \ + ft9000.c \ + ftdx10.c \ + ftdx101.c \ + ftdx101mp.c \ + newcat.c \ + vr5000.c \ + vx1700.c \ + yaesu.c) + +# +# Code for Antenna Rotators: +# +hamlib_C_SRC += $(addprefix rotators/, \ + amsat/if100.c \ + ars/ars.c \ + celestron/celestron.c \ + cnctrk/cnctrk.c \ + easycomm/easycomm.c \ + ether6/ether6.c \ + fodtrack/fodtrack.c \ + heathkit/hd1780.c \ + ioptron/rot_ioptron.c \ + m2/rc2800.c \ + meade/meade.c \ + prosistel/prosistel.c \ + rotorez/rotorez.c \ + sartek/sartek.c \ + satel/satel.c \ + spid/spid.c \ + ts7400/ts7400.c) + +hamlib_C_SRC += $(addprefix rotators/gs232a/, \ + gs232.c \ + gs232a.c \ + gs232b.c) + +hamlib_C_SRC += $(addprefix amplifiers/elecraft/, \ + kpa.c \ + kpa1500.c) + +# +# Untested. +# +ifeq ($(USE_LIBINDI),1) + VPATH += $(LIBINDI_ROOT)/libs/indibase + + CFLAGS += -DHAVE_LIBINDI=1 \ + -DHAVE_INDIBASE_LAYOUT=1 \ + -I$(LIBINDI_ROOT) \ + -I$(LIBINDI_ROOT)/libs \ + -I$(LIBINDI_ROOT)/../zlib + + hamlib_C_SRC += rotators/indi/indi.c + hamlib_CPP_SRC = rotators/indi/indi_wrapper.cpp \ + $(addprefix $(LIBINDI_ROOT)/libs/indibase/, \ + basedevice.cpp \ + indiproperty.cpp) +endif + +ifeq ($(USE_GNURADIO),1) + VPATH += extra/gnuradio + CFLAGS += -I./extra/gnuradio -I$(GNURADIO_ROOT)/include + + hamlib_C_SRC += $(addprefix extra/gnuradio/, \ + gr.c \ + graudio.c \ + mc4020.c) + + hamlib_CC_SRC += gnuradio/gnuradio.cc +endif + +# +# Various support code for Hamlib's internal use: +# +hamlib_misc_SRC = lib/termios.c \ + lib/win-misc.c \ + tests/sprintflst.c + +ifneq ($(CC),gcc) + hamlib_misc_SRC += $(addprefix lib/, \ + getopt_long.c \ + gettimeofday.c \ + usleep.c) +endif + +# +# .cc sources for $(Hamlib++_DLL)': +# +hamlib++_SRC = $(addprefix c++/, \ + ampclass.cc \ + rigclass.cc \ + rotclass.cc) + +# +# .c sources for various programs: +# +ampctl_SRC = $(addprefix tests/, \ + ampctl.c \ + ampctl_parse.c \ + dumpcaps_amp.c) + +ampctld_SRC = $(addprefix tests/, \ + ampctld.c \ + ampctl_parse.c \ + dumpcaps_amp.c) + +rigctlcom_SRC = $(addprefix tests/, \ + dumpcaps.c \ + rigctlcom.c \ + rigctl_parse.c) + +rigctl_SRC = $(addprefix tests/, \ + dumpcaps.c \ + dumpcaps_rot.c \ + rigctl.c \ + rigctl_parse.c) + +rigctld_SRC = $(addprefix tests/, \ + dumpcaps.c \ + dumpcaps_rot.c \ + rigctld.c \ + rigctl_parse.c) + +rigmem_SRC = $(addprefix tests/, \ + rigmem.c \ + memcsv.c \ + memload.c \ + memsave.c) + +rotctl_SRC = $(addprefix tests/, \ + rotctl.c \ + rotctl_parse.c \ + dumpcaps.c \ + dumpcaps_rot.c) + +rotctld_SRC = $(addprefix tests/, \ + rotctld.c \ + rotctl_parse.c \ + dumpcaps.c \ + dumpcaps_rot.c) + +hamlib_C_OBJ = $(call c_to_obj, $(hamlib_C_SRC)) +hamlib_CC_OBJ = $(call cc_to_obj, $(hamlib_CC_SRC)) +hamlib_CPP_OBJ = $(call cpp_to_obj,$(hamlib_CPP_SRC)) +hamlib++_OBJ = $(call cc_to_obj, $(hamlib++_SRC)) + +hamlib_misc_OBJ = $(call c_to_obj, $(hamlib_misc_SRC)) +ampctl_OBJ = $(call c_to_obj, $(ampctl_SRC)) +ampctld_OBJ = $(call c_to_obj, $(ampctld_SRC)) +rigctlcom_OBJ = $(call c_to_obj, $(rigctlcom_SRC)) +rigctl_OBJ = $(call c_to_obj, $(rigctl_SRC)) +rigctld_OBJ = $(call c_to_obj, $(rigctld_SRC)) +rigmatrix_OBJ = $(call c_to_obj, tests/rigmatrix.c) +rigmem_OBJ = $(call c_to_obj, $(rigmem_SRC)) +rotctl_OBJ = $(call c_to_obj, $(rotctl_SRC)) +rotctld_OBJ = $(call c_to_obj, $(rotctld_SRC)) + +hamlib_i = $(call c_to_i, $(hamlib_C_SRC)) +hamlib++_i = $(call cc_to_i, $(hamlib++_SRC)) + +$(hamlib_C_OBJ) \ +$(hamlib++_OBJ) \ +$(hamlib_i) \ +$(hamlib++_i): EXTRA_CFLAGS = -DIN_HAMLIB + +$(hamlib++_OBJ) \ +$(hamlib++_i): EXTRA_CFLAGS += -DDLL_EXPORT + +all_test_OBJ = $(addprefix $(OBJ_DIR)/, \ + dumpmem.$(O) \ + example.$(O) \ + listrigs.$(O) \ + rig_bench.$(O) \ + rigsmtr.$(O) \ + rigswr.$(O) \ + simyaesu.$(O) \ + testcpp.$(O) \ + testfreq.$(O) \ + testbcd.$(O) \ + testfreq.$(O) \ + testloc.$(O) \ + testrig.$(O) \ + testrigcaps.$(O) \ + testrigopen.$(O) \ + testtrn.$(O)) + +all_test_OBJ += $(ampctl_OBJ) \ + $(ampctld_OBJ) \ + $(rigctlcom_OBJ) \ + $(rigctl_OBJ) \ + $(rigctld_OBJ) \ + $(rigmatrix_OBJ) \ + $(rigmem_OBJ) \ + $(rotctl_OBJ) \ + $(rotctld_OBJ) \ + +all_test_I = $(notdir $(all_test_OBJ:.$(O)=.i)) + +$(all_test_OBJ) $(all_test_I): EXTRA_CFLAGS = $(PROG_CFLAGS) + +.SECONDARY: $(all_test_OBJ) + +GENERATED = config.h \ + tests/hamlibdatetime.h + +ifneq ($(CC),gcc) + GENERATED += $(addprefix $(OBJ_DIR)/, \ + unistd.h \ + termios.h \ + strings.h \ + sys/time.h \ + sys/ioctl.h) +endif + +all: $(OBJ_DIR) $(OBJ_DIR)/sys $(GENERATED) rm_elecraft $(TARGETS) programs epilogue + +$(OBJ_DIR) $(OBJ_DIR)/sys: + - $(MKDIR) $@ + +# +# This is a 0-byte file that messes with 'rigs/kenwood/elecraft.c' +# +rm_elecraft: + rm -f amplifiers/elecraft/elecraft.c + +epilogue: + $(call white_message, Welcome to $(Hamlib_DLL) and $(Hamlib++_DLL) (CPU=$(CPU)).) + $(call green_message, You could also do a 'make -f $(THIS_FILE) [doxy_docs | py_module | lua_module]'.\n) + +programs: $(GENERATED) $(TESTS_PROGS) + +$(hamlib_misc_OBJ): EXTRA_CFLAGS += -DIN_HAMLIB_MISC_LIB + +$(misc_LIB): $(hamlib_misc_OBJ) + $(call create_lib, $@, $^) + +$(Hamlib_STAT_LIB): $(hamlib_C_OBJ) $(hamlib_CC_OBJ) $(hamlib_CPP_OBJ) + $(call create_lib, $@, $^) + +$(Hamlib_IMP_LIB): $(Hamlib_DLL) +$(Hamlib++_IMP_LIB): $(Hamlib++_DLL) + +$(Hamlib_DLL): $(OBJ_DIR)/Hamlib.def $(Hamlib_STAT_LIB) $(misc_LIB) $(OBJ_DIR)/Hamlib.res + $(call link_DLL, $@, $(Hamlib_IMP_LIB), $(call select,,-def:)$^ $(EX_LIBS)) + +$(Hamlib++_DLL): $(hamlib++_OBJ) $(Hamlib_IMP_LIB) $(OBJ_DIR)/Hamlib++.res + $(call link_DLL, $@, $(Hamlib++_IMP_LIB), $^ $(call select, -lstdc++,) $(EX_LIBS)) + +# +# For MSVC only. +# +ifeq ($(USE_MP_COMPILE),1) + $(hamlib_C_OBJ): $(hamlib_C_SRC) | $(CC).args + $(CC) -MP @$(CC).args -DIN_HAMLIB -Fo./$(OBJ_DIR)\\ $(hamlib_C_SRC) + @echo +endif + +$(CC).args: $(THIS_FILE) + $(call green_message, Creating $@) + $(call create_resp_file, $@, $(CFLAGS) -c) + +# +# For 'testcpp.exe': +# +testcpp.exe: $(OBJ_DIR)/testcpp.$(O) $(CPP_PROG_LIBS) + $(call link_EXE, $@, $^ $(call select, -lstdc++,) $(EX_LIBS)) + +# +# For '$(TESTS_PROGS)': +# +$(OBJ_DIR)/%.$(O): tests/%.c | $(CC).args + $(call Compile, $<, $@) + +ampctl.exe: $(ampctl_OBJ) $(C_PROG_LIBS) + $(call link_EXE, $@, $^ $(PROG_LIBS)) + +ampctld.exe: $(ampctld_OBJ) $(C_PROG_LIBS) + $(call link_EXE, $@, $^ $(PROG_LIBS)) +rigctlcom.exe: $(rigctlcom_OBJ) $(C_PROG_LIBS) + $(call link_EXE, $@, $^ $(PROG_LIBS)) +rigctl.exe: $(rigctl_OBJ) $(C_PROG_LIBS) + $(call link_EXE, $@, $^ $(PROG_LIBS)) +rigctld.exe: $(rigctld_OBJ) $(C_PROG_LIBS) + $(call link_EXE, $@, $^ $(PROG_LIBS)) +rigmem.exe: $(rigmem_OBJ) $(C_PROG_LIBS) $(XML2_LIB) + $(call link_EXE, $@, $^ $(PROG_LIBS)) +rotctl.exe: $(rotctl_OBJ) $(C_PROG_LIBS) + $(call link_EXE, $@, $^ $(PROG_LIBS)) -<!DOCTYPE html> -<html lang="en" - data-color-mode="light" - data-light-theme="light" - data-dark-theme="dark"> - <head> - <meta charset="utf-8"> - <link rel="dns-prefetch" href="https://github.githubassets.com"> - <link rel="dns-prefetch" href="https://avatars.githubusercontent.com"> - <link rel="dns-prefetch" href="https://github-cloud.s3.amazonaws.com"> - <link rel="dns-prefetch" href="https://user-images.githubusercontent.com/"> +rotctld.exe: $(rotctld_OBJ) $(C_PROG_LIBS) + $(call link_EXE, $@, $^ $(PROG_LIBS)) +# +# I do not have a GD.lib for MSVC/clang. Use the dynamic MinGW version instead. +# Copy it's .DLL here to avoid another DLL-hell. +# +rigmatrix.exe: $(rigmatrix_OBJ) $(C_PROG_LIBS) $(LIBGD_ROOT)/src/libgd.dll.a + $(call link_EXE, $@, $^ $(PROG_LIBS)) + $(COPY) $(LIBGD_ROOT)/src/bgd.dll . +# +# For all other simple test-programs: +# +%.exe: $(OBJ_DIR)/%.$(O) $(C_PROG_LIBS) + $(call link_EXE, $@, $^ $(PROG_LIBS)) - <link crossorigin="anonymous" media="all" integrity="sha512-UdasBeAS0uriwyLr54gKKE8RYxeMfD/ikM+zOIKI7MZjGXwQfM1zha4aFvIxspXkCm2EAxWQC1QNWyu07ku5Ig==" rel="stylesheet" href="https://github.githubassets.com/assets/frameworks-51d6ac05e012d2eae2c322ebe7880a28.css" /> - - <link crossorigin="anonymous" media="all" integrity="sha512-o4J+tBmn3RlwVnhfBv2BySdk2NdgQAoLnJ9/EKw7Uoua6x2ERCXWLLBdx8O6SeZ1kaQtDPjg+ZxMkfFKpQYipQ==" rel="stylesheet" href="https://github.githubassets.com/assets/behaviors-a3827eb419a7dd197056785f06fd81c9.css" /> - - - - <link crossorigin="anonymous" media="all" integrity="sha512-Z/uTO5JrxIlQATq+PIRNjt2OYLkjbq8VtkRTRNrX+b8rd3EIkPIZOA0mD/xYFZ6YVPr3JPL2xg6JXkltIWf08g==" rel="stylesheet" href="https://github.githubassets.com/assets/github-67fb933b926bc48950013abe3c844d8e.css" /> +# +# For '$(hamlib_C_SRC)' and '$(hamlib_CC_SRC)': +# +$(OBJ_DIR)/%.$(O): %.c | $(CC).args + $(call Compile, $<, $@) + +$(OBJ_DIR)/%.$(O): %.cc | $(CC).args + $(call Compile, $<, $@) + +$(OBJ_DIR)/%.$(O): %.cpp | $(CC).args + $(call Compile, $<, $@) + +# +# For '$(hamlib_misc_SRC)' since 'lib' is not in 'VPATH' due to 'lib/dummy.c'. +# +$(OBJ_DIR)/%.$(O): lib/%.c | $(CC).args + $(call Compile, $<, $@) - <script crossorigin="anonymous" defer="defer" integrity="sha512-8K2vvwbW+6H27Nad5ydg8PA2/aMD/LKq+EiK9s0U0hhVZxCI2tWBsYk9beAtisRw2j+Or5k2/F+6dk02nmj/PA==" type="application/javascript" src="https://github.githubassets.com/assets/environment-f0adafbf.js"></script> - <script crossorigin="anonymous" defer="defer" integrity="sha512-3yixvhtA5nOJY+pDcqvBKztKjFwZqklw1mnoaHUlxzLSqT8hc8aJ8KPa+OjVGlOvZAp2prs7kh6cAJFDQBQ1JQ==" type="application/javascript" src="https://github.githubassets.com/assets/chunk-frameworks-df28b1be.js"></script> - <script crossorigin="anonymous" defer="defer" integrity="sha512-Bpsh6jNrHD75e3XfQQ+wdo+ky+Ig480DD8OVdZnHZglPO+r5sXnoSvs4In/HaKtH2Di2MVNL7NJFib5zmKrayQ==" type="application/javascript" src="https://github.githubassets.com/assets/chunk-vendor-069b21ea.js"></script> - - <script crossorigin="anonymous" defer="defer" integrity="sha512-TOWq4GrLDl5mgWizcNAEVEOywj4s3Lr0QgDdFUXLept1zNuX1ja/vDsDaU8smKjzepcaDpC+sOiyrx/RL6D04w==" type="application/javascript" src="https://github.githubassets.com/assets/behaviors-4ce5aae0.js"></script> - <script crossorigin="anonymous" defer="defer" integrity="sha512-AwxJjNYHMbBW1RDMWqHLbm5ef0HpZqNZm4BU62VDY1R3ClrM8cwzqMGk0YJDgSjC0X3HMnQLUYS8sIcRPYZ3aQ==" type="application/javascript" src="https://github.githubassets.com/assets/primer-030c498c.js"></script> - - <script crossorigin="anonymous" defer="defer" integrity="sha512-MiuFoXnjDmRNVM/xNR9yfPr8Qi8Q6+TKWIrkXp+1QJv9MW8lpBfOy0u7AuVuXQVYKIhsr5DCuCxIs1STWpujLg==" type="application/javascript" data-module-id="./chunk-color-modes.js" data-src="https://github.githubassets.com/assets/chunk-color-modes-322b85a1.js"></script> - <script crossorigin="anonymous" defer="defer" integrity="sha512-evfy6RyDyXvLuaEEFaUaIlw9dSRgvKkF3rMeUELkvXq7sGEK/43vTg+3EE6E8nOsjpuPyYQjgS8bxzqkTjlZag==" type="application/javascript" data-module-id="./chunk-contributions-spider-graph.js" data-src="https://github.githubassets.com/assets/chunk-contributions-spider-graph-7af7f2e9.js"></script> - <script crossorigin="anonymous" defer="defer" integrity="sha512-obMR8mPKx8OvqRe34LgnUcxeJ1qujiA4ND3H6UX13ExMlA/WfHLjEzXRmgGRcRvN/8J1nzc+Z+jgz/PLTFy6zg==" type="application/javascript" data-module-id="./chunk-drag-drop.js" data-src="https://github.githubassets.com/assets/chunk-drag-drop-a1b311f2.js"></script> - <script crossorigin="anonymous" defer="defer" integrity="sha512-cVnIoXzYnuz2SYwsbnuCpTFzvO17cPoQV2mK82+em//c8i7V2L0VEeInplXGgfbx4d8bQGQuPPx0P0BCRfJ37g==" type="application/javascript" data-module-id="./chunk-edit.js" data-src="https://github.githubassets.com/assets/chunk-edit-7159c8a1.js"></script> - <script crossorigin="anonymous" defer="defer" integrity="sha512-TGnbT/6B5dxVwEk7iOlwSY9mfqhfq8m05ec+KjdlfEwoieq73iBeyidClQUSmFa2snukwzF9peY8c7FJf9FARA==" type="application/javascript" data-module-id="./chunk-emoji-picker-element.js" data-src="https://github.githubassets.com/assets/chunk-emoji-picker-element-4c69db4f.js"></script> - <script crossorigin="anonymous" defer="defer" integrity="sha512-NwYkwzxETzKUYRXumHDsBIuggkh86KmJ1WrwWZW5wTvVPf047+wOmOHI5b4D65bfdtd3WbXJ7k+3ZWoxpIaqcA==" type="application/javascript" data-module-id="./chunk-insights-graph.js" data-src="https://github.githubassets.com/assets/chunk-insights-graph-370624c3.js"></script> - <script crossorigin="anonymous" defer="defer" integrity="sha512-ZhHO4yoDkpCF2sJkzsW3BP1RNu9ji9N6KwuBWy03eGOwkHKwBbs5gKizpeyjslAXlWOV4f9HRVN981Du0AfcvQ==" type="application/javascript" data-module-id="./chunk-jump-to.js" data-src="https://github.githubassets.com/assets/chunk-jump-to-6611cee3.js"></script> - <script crossorigin="anonymous" defer="defer" integrity="sha512-S8aUo+fRvLif3bA63pJ03RyoYVNFJ7Q+aOmtVVHabaVFMwV1zMdE4HTEewMkbU0ZK2Ik5Q3Ob9/JE+zrNC5qaw==" type="application/javascript" data-module-id="./chunk-profile-pins-element.js" data-src="https://github.githubassets.com/assets/chunk-profile-pins-element-4bc694a3.js"></script> - <script crossorigin="anonymous" defer="defer" integrity="sha512-E+H+wAtjiqutBvn2cnXzDIvmasIhYiS7i7JzOfFUwo+Ej8zT54OrJtP//RhwixnypgOpCF4JvqzYy6zOtORDmg==" type="application/javascript" data-module-id="./chunk-runner-groups.js" data-src="https://github.githubassets.com/assets/chunk-runner-groups-13e1fec0.js"></script> - <script crossorigin="anonymous" defer="defer" integrity="sha512-U+Pp1bYuA3fRqhike5Go//O/vsExaZLz00lrIby+rZ88yf03nQHz3wLZR9paWkakpD7TH5nS6AUpabCc7OFWpg==" type="application/javascript" data-module-id="./chunk-sortable-behavior.js" data-src="https://github.githubassets.com/assets/chunk-sortable-behavior-53e3e9d5.js"></script> - <script crossorigin="anonymous" defer="defer" integrity="sha512-cAsQOq53AtF8bCPWtKuMXOB2Jjt2089fKQQXtk1bNk2ZSBjx2yQOdGZWsXDfWG5H8FmjJzZsepBmOhy+wO7uAQ==" type="application/javascript" data-module-id="./chunk-toast.js" data-src="https://github.githubassets.com/assets/chunk-toast-700b103a.js"></script> - <script crossorigin="anonymous" defer="defer" integrity="sha512-QBwrFY4kzAVN0nZmTYJLeEhi5bQ+42rE8h1g384XeZb7n62BykcUICACtaDQ473aIrRf38RSR7WDfNEIVuSlTA==" type="application/javascript" data-module-id="./chunk-tweetsodium.js" data-src="https://github.githubassets.com/assets/chunk-tweetsodium-401c2b15.js"></script> - <script crossorigin="anonymous" defer="defer" integrity="sha512-RfbLfWsDwvP53bQvgbFm/0j3n5N7IuPQ9yyQ1ah3azz9E2KVeo5ujcUGh++d+t49H0EUTKfeAZ+g9PgCVCjErw==" type="application/javascript" data-module-id="./chunk-user-status-submit.js" data-src="https://github.githubassets.com/assets/chunk-user-status-submit-45f6cb7d.js"></script> - - <script crossorigin="anonymous" defer="defer" integrity="sha512-bVgr2gL7DaSaCp/Aev1O/9V1boyT/1FCjRIYcSMOG4AqUvP9e7h3hMvR9LtX0sHt/uTv7Sp1YtF1KMDQm9E6Nw==" type="application/javascript" src="https://github.githubassets.com/assets/repositories-6d582bda.js"></script> -<script crossorigin="anonymous" defer="defer" integrity="sha512-ng+rLwG9JuJBuJQWCGyT4r3VjNUz1FNWKpqbE2zWpJJZHkkwqkYWwJxo5k+PZCuWqUWZxofbuEtLrQnnjIyTqQ==" type="application/javascript" src="https://github.githubassets.com/assets/diffs-9e0fab2f.js"></script> - - <meta name="viewport" content="width=device-width"> - - <title>Hamlib/Makefile.Windows at master · gvanem/Hamlib</title> - <meta name="description" content="Ham radio control library. Now supporting MSVC + clang-cl too. - gvanem/Hamlib"> - <link rel="search" type="application/opensearchdescription+xml" href="/opensearch.xml" title="GitHub"> - <link rel="fluid-icon" href="https://github.com/fluidicon.png" title="GitHub"> - <meta property="fb:app_id" content="1401488693436528"> - <meta name="apple-itunes-app" content="app-id=1477376905" /> - <meta name="twitter:image:src" content="https://avatars.githubusercontent.com/u/945271?s=400&v=4" /><meta name="twitter:site" content="@github" /><meta name="twitter:card" content="summary" /><meta name="twitter:title" content="gvanem/Hamlib" /><meta name="twitter:description" content="Ham radio control library. Now supporting MSVC + clang-cl too. - gvanem/Hamlib" /> - <meta property="og:image" content="https://avatars.githubusercontent.com/u/945271?s=400&v=4" /><meta property="og:site_name" content="GitHub" /><meta property="og:type" content="object" /><meta property="og:title" content="gvanem/Hamlib" /><meta property="og:url" content="https://github.com/gvanem/Hamlib" /><meta property="og:description" content="Ham radio control library. Now supporting MSVC + clang-cl too. - gvanem/Hamlib" /> - - - - - - <link rel="assets" href="https://github.githubassets.com/"> - <link rel="shared-web-socket" href="wss://alive.github.com/_sockets/u/8899915/ws?session=eyJ2IjoiVjMiLCJ1Ijo4ODk5OTE1LCJzIjo2NTkyOTY0MDMsImMiOjY1NzMwNzA3LCJ0IjoxNjE1MjY4ODExfQ==--2dbf41cfcdcb25546b2110fed5c954965bc58f74c20e0ffc7562ed5293c0d594" data-refresh-url="/_alive"> - <link rel="shared-web-socket-src" href="/socket-worker-5029ae85.js"> - <link rel="sudo-modal" href="/sessions/sudo_modal"> - - <meta name="request-id" content="C514:1DF1:1229255:1FF6538:60470BC3" data-pjax-transient="true" /><meta name="html-safe-nonce" content="a16fbfa9c0f8d7b2045600b8396573a9da1db93ed11f3e8527b3c39012f91b55" data-pjax-transient="true" /><meta name="visitor-payload" content="eyJyZWZlcnJlciI6Imh0dHBzOi8vZ2l0aHViLmNvbS9ndmFuZW0vSGFtbGliL2ZpbmQvbWFzdGVyIiwicmVxdWVzdF9pZCI6IkM1MTQ6MURGMToxMjI5MjU1OjFGRjY1Mzg6NjA0NzBCQzMiLCJ2aXNpdG9yX2lkIjoiMzY4NzI5MTA4Mzc3NzU5MjY2MiIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9" data-pjax-transient="true" /><meta name="visitor-hmac" content="1df62dc27d9095fb012f67844c4106d13cb7354dbe9005128d63378abfac0d56" data-pjax-transient="true" /> - - <meta name="hovercard-subject-tag" content="repository:214546134" data-pjax-transient> - - - <meta name="github-keyboard-shortcuts" content="repository,source-code" data-pjax-transient="true" /> - - - - <meta name="selected-link" value="repo_source" data-pjax-transient> - - <meta name="google-site-verification" content="c1kuD-K2HIVF635lypcsWPoD4kilo5-jA_wBFyT4uMY"> - <meta name="google-site-verification" content="KT5gs8h0wvaagLKAVWq8bbeNwnZZK1r1XQysX3xurLU"> - <meta name="google-site-verification" content="ZzhVyEFwb7w3e0-uOTltm8Jsck2F5StVihD0exw2fsA"> - <meta name="google-site-verification" content="GXs5KoUUkNCoaAZn7wPN-t01Pywp9M3sEjnt_3_ZWPc"> - - <meta name="octolytics-host" content="collector.githubapp.com" /><meta name="octolytics-app-id" content="github" /><meta name="octolytics-event-url" content="https://collector.githubapp.com/github-external/browser_event" /><meta name="octolytics-actor-id" content="8899915" /><meta name="octolytics-actor-login" content="mdblack98" /><meta name="octolytics-actor-hash" content="2eef6ecf973baf7c17cbfff04cda596b4d8d96fb9f2fbaf6d5c1152a38ce2ad3" /> - - <meta name="analytics-location" content="/<user-name>/<repo-name>/blob/show" data-pjax-transient="true" /> - - - - - - <meta name="optimizely-datafile" content="{"version": "4", "rollouts": [], "typedAudiences": [], "anonymizeIP": true, "projectId": "16737760170", "variables": [], "featureFlags": [], "experiments": [{"status": "Running", "audienceIds": [], "variations": [{"variables": [], "id": "19739506060", "key": "en"}, {"variables": [], "id": "19720506378", "key": "pt"}], "id": "19741925936", "key": "homepage_translation", "layerId": "19739776731", "trafficAllocation": [{"entityId": "19720506378", "endOfRange": 5000}, {"entityId": "19739506060", "endOfRange": 10000}], "forcedVariations": {}}], "audiences": [{"conditions": "[\"or\", {\"match\": \"exact\", \"name\": \"$opt_dummy_attribute\", \"type\": \"custom_attribute\", \"value\": \"$opt_dummy_value\"}]", "id": "$opt_dummy_audience", "name": "Optimizely-Generated Audience for Backwards Compatibility"}], "groups": [{"policy": "random", "trafficAllocation": [{"entityId": "20065350824", "endOfRange": 10000}], "experiments": [{"status": "Running", "audienceIds": [], "variations": [{"variables": [], "id": "20061181493", "key": "control"}, {"variables": [], "id": "20046091568", "key": "most_popular"}], "id": "20065350824", "key": "pricing_page", "layerId": "20047761391", "trafficAllocation": [{"entityId": "20061181493", "endOfRange": 5000}, {"entityId": "20046091568", "endOfRange": 10000}], "forcedVariations": {"1693726779.1607624005": "most_popular", "b3d9f4f9910bc46c43a8d65ab83d8570": "most_popular"}}], "id": "19972601768"}], "attributes": [{"id": "16822470375", "key": "user_id"}, {"id": "17143601254", "key": "spammy"}, {"id": "18175660309", "key": "organization_plan"}, {"id": "18813001570", "key": "is_logged_in"}, {"id": "19073851829", "key": "geo"}], "botFiltering": false, "accountId": "16737760170", "events": [{"experimentIds": [], "id": "17911811441", "key": "hydro_click.dashboard.teacher_toolbox_cta"}, {"experimentIds": [], "id": "18124116703", "key": "submit.organizations.complete_sign_up"}, {"experimentIds": [], "id": "18145892387", "key": "no_metric.tracked_outside_of_optimizely"}, {"experimentIds": [], "id": "18178755568", "key": "click.org_onboarding_checklist.add_repo"}, {"experimentIds": [], "id": "18180553241", "key": "submit.repository_imports.create"}, {"experimentIds": [], "id": "18186103728", "key": "click.help.learn_more_about_repository_creation"}, {"experimentIds": [], "id": "18188530140", "key": "test_event.do_not_use_in_production"}, {"experimentIds": [], "id": "18191963644", "key": "click.empty_org_repo_cta.transfer_repository"}, {"experimentIds": [], "id": "18195612788", "key": "click.empty_org_repo_cta.import_repository"}, {"experimentIds": [], "id": "18210945499", "key": "click.org_onboarding_checklist.invite_members"}, {"experimentIds": [], "id": "18211063248", "key": "click.empty_org_repo_cta.create_repository"}, {"experimentIds": [], "id": "18215721889", "key": "click.org_onboarding_checklist.update_profile"}, {"experimentIds": [], "id": "18224360785", "key": "click.org_onboarding_checklist.dismiss"}, {"experimentIds": [], "id": "18234832286", "key": "submit.organization_activation.complete"}, {"experimentIds": [], "id": "18252392383", "key": "submit.org_repository.create"}, {"experimentIds": [], "id": "18257551537", "key": "submit.org_member_invitation.create"}, {"experimentIds": [],... [truncated message content] |