diff --git a/Makefile b/Makefile
index e889f55..9606e51 100644
--- a/Makefile
+++ b/Makefile
@@ -1,13 +1,17 @@
+PUBLISHER_PORT=5556
 CC="gcc"
+CFLAGS=
 
 all: publisher client
 
 publisher:
 	echo "Building publisher..."
+	CFLAGS+=-DPUBLISHER_PORT=$(PUBLISHER_PORT) \
 	$(MAKE) -C src/publisher/ CC=$(CC) OUT=$(PWD)
 
 client:
 	echo "Building client..."
+	CFLAGS+=-DPUBLISHER_PORT=$(PUBLISHER_PORT) \
 	$(MAKE) -C src/client/ CC=$(CC) OUT=$(PWD)
 
 
diff --git a/client b/client
index 219fb85..8da3fc3 100755
Binary files a/client and b/client differ
diff --git a/publisher b/publisher
index 44a2325..a4a8b88 100755
Binary files a/publisher and b/publisher differ
diff --git a/src/client/Makefile b/src/client/Makefile
index d370439..0ae633e 100644
--- a/src/client/Makefile
+++ b/src/client/Makefile
@@ -1,5 +1,5 @@
 EXEC=client
-CFLAGS=-lzmq
+CFLAGS+=-lzmq
 
 all: main.c
 	$(CC) $^ -o $(OUT)/$(EXEC) $(CFLAGS)
diff --git a/src/client/main.c b/src/client/main.c
index 5204ae3..e7ff4a5 100644
--- a/src/client/main.c
+++ b/src/client/main.c
@@ -6,13 +6,20 @@
 #include <time.h>
 #include <string.h>
 
+#define STR(symbol) #symbol
+#define STRINGIFY(symbol) STR(symbol)
+
+#ifndef PUBLISHER_PORT 
+#error PUBLISHER_PORT macro undefined
+#endif
+
 int main (int argc, char *argv [])
 {
     //  Socket to talk to server
     printf ("Collecting updates from weather server...\n");
     void *context = zmq_ctx_new ();
     void *subscriber = zmq_socket (context, ZMQ_SUB);
-    int rc = zmq_connect (subscriber, "tcp://localhost:5556");
+    int rc = zmq_connect (subscriber, "tcp://localhost:"STRINGIFY(PUBLISHER_PORT));
     assert (rc == 0);
 
     //  Subscribe to zipcode, default is NYC, 10001
diff --git a/src/publisher/Makefile b/src/publisher/Makefile
index 605e667..57eccb9 100644
--- a/src/publisher/Makefile
+++ b/src/publisher/Makefile
@@ -1,5 +1,5 @@
 EXEC=publisher
-CFLAGS=-lzmq
+CFLAGS+=-lzmq
 
 all: main.c
 	$(CC) $^ -o $(OUT)/$(EXEC) $(CFLAGS)
diff --git a/src/publisher/main.c b/src/publisher/main.c
index 0abfefb..817d79f 100644
--- a/src/publisher/main.c
+++ b/src/publisher/main.c
@@ -6,12 +6,19 @@
 #include <assert.h>
 #include <time.h>
 
+#define STR(symbol) #symbol
+#define STRINGIFY(symbol) STR(symbol)
+
+#ifndef PUBLISHER_PORT 
+#error PUBLISHER_PORT macro undefined
+#endif
+
 int main (void)
 {
     //  Prepare our context and publisher
     void *context = zmq_ctx_new ();
     void *publisher = zmq_socket (context, ZMQ_PUB);
-    int rc = zmq_bind (publisher, "tcp://*:5556");
+    int rc = zmq_bind (publisher, "tcp://*:"STRINGIFY(PUBLISHER_PORT));
     assert (rc == 0);
 
     //  Initialize random number generator