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