Index: roard/include/caps.h
===================================================================
--- roard/include/caps.h	(revision 4708)
+++ roard/include/caps.h	(revision 5194)
@@ -29,5 +29,5 @@
 #include <roaraudio.h>
 
-struct roar_stds g_caps_stds;
+extern struct roar_stds g_caps_stds;
 
 char * stds_string (void);
Index: roard/include/light.h
===================================================================
--- roard/include/light.h	(revision 4708)
+++ roard/include/light.h	(revision 5194)
@@ -33,5 +33,5 @@
 #define LIGHT_CHANNELS_DEFAULT 512 /* one DMX Universe */
 
-struct {
+extern struct light_state {
  unsigned int    channels;
  unsigned char * state;
@@ -39,5 +39,5 @@
 } g_light_state;
 
-struct {
+extern struct light_mixer {
  int stream;
 } g_light_mixer;
Index: roard/include/midi.h
===================================================================
--- roard/include/midi.h	(revision 4708)
+++ roard/include/midi.h	(revision 5194)
@@ -83,5 +83,5 @@
 #define MIDI_INITED_CLOCK       0x04
 
-struct {
+extern struct midi_config {
  int init;
  int inited;
@@ -107,10 +107,10 @@
 };
 
-struct {
+extern struct midi_state_mess {
  struct roar_buffer * buf;
 } g_midi_mess;
 
 #ifndef ROAR_WITHOUT_DCOMP_CB
-struct {
+extern struct midi_state_cb {
  int      console;
  int      stream;
@@ -120,5 +120,5 @@
 #endif
 
-struct {
+extern struct midi_clock {
  int stream;
  uint_least32_t bph; // beats per hour
@@ -127,5 +127,5 @@
 } g_midi_clock;
 
-struct {
+extern struct midi_mixer {
  int stream;
 } g_midi_mixer;
Index: roard/include/rdtcs.h
===================================================================
--- roard/include/rdtcs.h	(revision 4708)
+++ roard/include/rdtcs.h	(revision 5194)
@@ -48,5 +48,5 @@
 #define RDTCS_RDS_FLAG_CT     0x0002
 
-struct {
+extern struct rdtcs_state {
  int inited;
  struct {
Index: roard/include/roard.h
===================================================================
--- roard/include/roard.h	(revision 5192)
+++ roard/include/roard.h	(revision 5194)
@@ -28,5 +28,5 @@
 
 // configure ROAR_INFO()
-int g_verbose;
+extern int g_verbose;
 #define ROAR_DBG_INFOVAR g_verbose
 
@@ -193,5 +193,5 @@
 #define CONF_DEF_STRING "***default***"
 
-struct roard_config {
+extern struct roard_config {
  uint32_t flags;
  struct {
@@ -219,5 +219,5 @@
 };
 
-struct {
+extern struct counters {
  struct _counters cur, sum;
 } g_counters;
Index: roard/include/sources.h
===================================================================
--- roard/include/sources.h	(revision 4919)
+++ roard/include/sources.h	(revision 5194)
@@ -43,6 +43,4 @@
 };
 
-int g_source_client;
-
 int sources_init (void);
 int sources_free (void);
Index: roard/include/ssynth.h
===================================================================
--- roard/include/ssynth.h	(revision 5192)
+++ roard/include/ssynth.h	(revision 5194)
@@ -52,5 +52,5 @@
 extern float ssynth_polys[SSYNTH_POLY_POLYMAX][SSYNTH_POLY_COEFF];
 
-struct {
+extern struct ssynth_conf {
  int enable;
 } ssynth_conf;
Index: roard/include/streams.h
===================================================================
--- roard/include/streams.h	(revision 5192)
+++ roard/include/streams.h	(revision 5194)
@@ -118,5 +118,5 @@
 } * g_streams[ROAR_STREAMS_MAX];
 
-int streams_recsource_id;
+extern int streams_recsource_id;
 
 void streams_change_sync_num(int id, int diff);
Index: roard/include/waveform.h
===================================================================
--- roard/include/waveform.h	(revision 4820)
+++ roard/include/waveform.h	(revision 5194)
@@ -29,13 +29,10 @@
 #include <roaraudio.h>
 
-struct {
+struct waveform_stream {
  int stream;
  struct roar_stream_server * ss;
-} g_waveform_mixer;
+};
 
-struct {
- int stream;
- struct roar_stream_server * ss;
-} g_waveform_recbridge;
+extern struct waveform_stream g_waveform_mixer, g_waveform_recbridge;
 
 int waveform_init  (void);
Index: roard/light.c
===================================================================
--- roard/light.c	(revision 4957)
+++ roard/light.c	(revision 5194)
@@ -27,4 +27,9 @@
 
 #ifndef ROAR_WITHOUT_DCOMP_LIGHT
+
+// declared 'extern'
+struct light_state g_light_state;
+struct light_mixer g_light_mixer;
+// //
 
 int light_init  (unsigned int channels) {
Index: roard/midi.c
===================================================================
--- roard/midi.c	(revision 5162)
+++ roard/midi.c	(revision 5194)
@@ -27,4 +27,12 @@
 
 #ifndef ROAR_WITHOUT_DCOMP_MIDI
+
+// declared 'extern'
+struct midi_config midi_config;
+struct midi_state_mess g_midi_mess;
+struct midi_state_cb g_midi_cb;
+struct midi_clock g_midi_clock;
+struct midi_mixer g_midi_mixer;
+// //
 
 #if defined(ROAR_HAVE_IO_POSIX) && !defined(ROAR_TARGET_WIN32)
Index: roard/rdtcs.c
===================================================================
--- roard/rdtcs.c	(revision 4708)
+++ roard/rdtcs.c	(revision 5194)
@@ -27,4 +27,7 @@
 
 #ifndef ROAR_WITHOUT_DCOMP_RDTCS
+
+// declared 'extern'
+struct rdtcs_state g_rdtcs;
 
 int rdtcs_init  (void) {
Index: roard/roard.c
===================================================================
--- roard/roard.c	(revision 5192)
+++ roard/roard.c	(revision 5194)
@@ -56,4 +56,6 @@
 
 // some stuff we only define extern globally.
+int g_verbose = ROAR_DBG_INFO_NONE;
+
 int alive;
 #ifdef ROAR_SUPPORT_LISTEN
@@ -73,4 +75,8 @@
 
 struct roar_audio_info * g_sa, * g_max_sa;
+
+struct roard_config * g_config;
+
+struct counters g_counters;
 // end of extern block.
 
Index: roard/sources.c
===================================================================
--- roard/sources.c	(revision 5162)
+++ roard/sources.c	(revision 5194)
@@ -28,4 +28,6 @@
 #ifndef ROAR_WITHOUT_DCOMP_SOURCES
 
+static int g_source_client = -1;
+
 #define ROAR_SOURCE_DEFAULT "cf"
 
@@ -45,5 +47,4 @@
 
 int sources_init (void) {
- g_source_client = -1;
  return 0;
 }
Index: roard/ssynth.c
===================================================================
--- roard/ssynth.c	(revision 5192)
+++ roard/ssynth.c	(revision 5194)
@@ -32,4 +32,6 @@
        {0.700010, -0.083333, -0.150000,  0.033333}
       };
+
+struct ssynth_conf ssynth_conf;
 
 struct ssynth_state g_ssynth;
Index: roard/waveform.c
===================================================================
--- roard/waveform.c	(revision 4821)
+++ roard/waveform.c	(revision 5194)
@@ -25,4 +25,7 @@
 
 #include "roard.h"
+
+// declared 'extern'.
+struct waveform_stream g_waveform_mixer, g_waveform_recbridge;
 
 static int waveform_init_recbridge (void) {
