Ну, make-файлы - это просто особые сценарии. Каждый уникален, для такой простой задачи этого будет достаточно:
Makefile:
CC=gcc
CFLAGS=-lm -lcrypto
SOURCES=my.c cJ/cJ.c
all: my
my: $(SOURCES)
$(CC) -o my $(SOURCES) $(CFLAGS)
Позже вы можете использовать некоторые другие параметры, такие как подстановочные знаки %. C для компиляции в несколько файлов без необходимости их записи.
В качестве альтернативы:
CC=gcc
CFLAGS=-lm -lcrypto
MY_SOURCES = my.c cJ/cJ.c
MY_OBJS = $(patsubst %.c,%.o, $(MY_SOURCES))
all: my
%o: %.c
$(CC) $(CFLAGS) -c $<
my: $(MY_OBJS)
$(CC) $(CFLAGS) $^ -o $@
Обратите внимание, что строки после каждой цели ("my:", ...) должны начинаться с табуляции (\ t), а не пробелов.