Add long parameters (--help, --version, ...)

Makes osmo-trx-* more consistent with other Osmocom programs, and
allows an unified test for not having "UNKNOWN" in --version.

Related: OS#3578
Change-Id: I90cf01d972aa10b48c59b67a1e7f82a4255ef526
diff --git a/Transceiver52M/osmo-trx.cpp b/Transceiver52M/osmo-trx.cpp
index 7f72c47..b6b676e 100644
--- a/Transceiver52M/osmo-trx.cpp
+++ b/Transceiver52M/osmo-trx.cpp
@@ -27,6 +27,7 @@
 #include <signal.h>
 #include <stdlib.h>
 #include <unistd.h>
+#include <getopt.h>
 #include <sched.h>
 #include <vector>
 #include <string>
@@ -211,9 +212,9 @@
 static void print_help()
 {
 	fprintf(stdout, "Options:\n"
-		"  -h    This text\n"
-		"  -C    Filename The config file to use\n"
-		"  -V    Print the version of OsmoTRX\n"
+		"  -h, --help      This text\n"
+		"  -C, --config    Filename The config file to use\n"
+		"  -V, --version   Print the version of OsmoTRX\n"
 		);
 }
 
@@ -230,8 +231,15 @@
 	unsigned int i;
 	std::vector<std::string> rx_paths, tx_paths;
 	bool rx_paths_set = false, tx_paths_set = false;
+	static struct option long_options[] = {
+		{"help", 0, 0, 'h'},
+		{"config", 1, 0, 'C'},
+		{"version", 0, 0, 'V'},
+		{NULL, 0, 0, 0}
+	};
 
-	while ((option = getopt(argc, argv, "ha:l:i:j:p:c:dmxgfo:s:b:r:A:R:Set:y:z:C:V")) != -1) {
+	while ((option = getopt_long(argc, argv, "ha:l:i:j:p:c:dmxgfo:s:b:r:A:R:Set:y:z:C:V", long_options,
+		NULL)) != -1) {
 		switch (option) {
 		case 'h':
 			print_help();