CC=gcc CFLAGS=-Wall -Os -g -DDLL_EXPORT -DFD_SETSIZE=16384 -DZMQ_USE_SELECT -I. LIBS=-lws2_32 -lIphlpapi -lsodium OBJS = ctx.o reaper.o dist.o err.o \ clock.o metadata.o random.o \ object.o own.o \ io_object.o io_thread.o \ lb.o fq.o \ address.o tcp_address.o ipc_address.o \ ipc_connecter.o ipc_listener.o \ tcp_connecter.o tcp_listener.o \ mailbox.o msg.o mtrie.o \ pipe.o precompiled.o proxy.o \ signaler.o stream_engine.o \ thread.o trie.o \ ip.o tcp.o \ pgm_socket.o pgm_receiver.o pgm_sender.o \ raw_decoder.o raw_encoder.o \ v1_decoder.o v1_encoder.o v2_decoder.o v2_encoder.o \ udp_address.o udp_engine.o radio.o dish.o \ socket_base.o session_base.o options.o \ req.o rep.o push.o pull.o pub.o sub.o pair.o \ dealer.o router.o xpub.o xsub.o stream.o \ poller_base.o select.o poll.o epoll.o kqueue.o devpoll.o \ curve_client.o curve_server.o \ mechanism.o null_mechanism.o plain_client.o plain_server.o \ socks.o server.o decoder_allocators.o socks_connecter.o \ socket_poller.o mailbox_safe.o plain_server.o client.o timers.o \ zmq.o zmq_utils.o gather.o scatter.o dgram.o %.o: ../../src/%.cpp $(CC) -c -o $@ $< $(CFLAGS) %.o: ../../perf/%.cpp $(CC) -c -o $@ $< $(CFLAGS) all: libzmq.dll perf: inproc_lat.exe inproc_thr.exe local_lat.exe local_thr.exe remote_lat.exe remote_thr.exe libzmq.dll: $(OBJS) g++ -shared -static -O2 -s -o $@ $^ -Wl,--out-implib,$@.a $(LIBS) %.exe: %.o libzmq.dll g++ -o -O2 $@ $^ clean: del *.o *.a *.dll *.exe