pico-http/hashtable/Makefile
adgundersen 1b54b78416 Fix Makefiles and add README
The http/ and hashtable/ Makefiles named sources that do not exist
(test.c, net.c, net.h in http/; http.h in hashtable/) and had no way to
find the sibling hashtable/llist sources they link against, so neither
directory built at all. Both now compile those sources with explicit
recipes.

VPATH would be the terser fix but is deliberately avoided: it searches
for targets as well as sources, so a stale ../llist/test.o gets linked
in place of a freshly compiled one, and hashtable/test silently runs the
linked-list suite instead of its own.

llist/Makefile built fine; its .PHONY read "all," with a comma, making
that the literal target name, and test.o was missing its llist.h
dependency.

README covers layout, build, run, the use()/Handler routing API, and the
library tests.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-10 20:53:09 +00:00

25 lines
532 B
Makefile

CC=gcc
CFLAGS=-Wall -Wextra -I. -I../llist
OBJS=test.o hashtable.o llist.o
all: test
test: $(OBJS)
$(CC) -o $@ $^
# Explicit recipes rather than VPATH: VPATH also searches for *targets*, so a
# stale ../llist/test.o would get linked in place of this directory's own.
test.o: test.c hashtable.h
$(CC) $(CFLAGS) -c -o $@ $<
hashtable.o: hashtable.c hashtable.h ../llist/llist.h
$(CC) $(CFLAGS) -c -o $@ $<
llist.o: ../llist/llist.c ../llist/llist.h
$(CC) $(CFLAGS) -c -o $@ $<
clean:
rm -f $(OBJS) test
.PHONY: all clean