Skip to content

Commit

Permalink
Finally a working makefile
Browse files Browse the repository at this point in the history
  • Loading branch information
ishanpranav committed Feb 2, 2024
1 parent 4f57993 commit 8262a08
Show file tree
Hide file tree
Showing 5 changed files with 90 additions and 88 deletions.
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@

a.out
*.exe
*.obj
*.a
*.lib
*.o
.vscode/
key.txt
Expand Down
2 changes: 1 addition & 1 deletion Compile-Win64.ps1
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
# Licensed under the MIT License.

Make @args CC="clang" O=".obj" E=".exe" EXTRAS='-Wno-deprecated-declarations -Iinclude/mpir_x64-windows/include/' LM='' LGMP='include/mpir_x64-windows/lib/mpir.lib'
Make @args A=".lib" E=".exe" RM="del" AR="lib /OUT:euler.lib" CC="clang" EXTRAS="-Wno-deprecated-declarations -Iinclude/mpir_x64-windows/include/" LM="" LGMP="include/mpir_x64-windows/lib/mpir.lib"
171 changes: 86 additions & 85 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,25 +1,24 @@
# Licensed under the MIT License.

A = .a
O = .o
E =
RM = rm -rf
AR = ar -r libeuler$(A)

CC = gcc
EXTRAS =
CFLAGS = -L. -O3 -pedantic -std=c99 -Wall -Wextra$(EXTRAS)
EXTRAS = -L.
CFLAGS = -O3 -pedantic -std=c99 -Wall -Wextra $(EXTRAS)
TWOS_COMPLEMENT = -fno-strict-overflow -fwrapv

LM = -lm
LEULER = -leuler
LGMP = -lgmp

LEULER = -leuler $(LM)
LM = -lm

RECURSE = $(foreach d,$(wildcard $(1:=/*)),$(call RECURSE,$d,$2) $(filter $(subst *,%,$2),$d))
LEETCODE = $(wildcard src/lc*.c)

all: \
libeuler$(A) libleetcode$(A) \
libeuler$(A) \
id0001$(E) id0002$(E) id0003$(E) id0004$(E) id0005$(E) id0006$(E) \
id0007$(E) id0008$(E) id0009$(E) id0010$(E) id0011$(E) id0012$(E) \
id0013$(E) id0014$(E) id0015$(E) id0016$(E) id0017$(E) id0018$(E) \
Expand All @@ -35,233 +34,235 @@ all: \
id0074$(E) #id0075$(E) id0076$(E) id0077$(E) id0078$(E) id0079$(E)

libeuler$(A): $(call RECURSE,lib,*.c)
$(RM) *.o
$(CC) $(CFLAGS) -c $(call RECURSE,lib,*.c)
ar -r $@ *$(O)
$(AR) *.o

libleetcode$(A): $(LEETCODE)
$(CC) $(CFLAGS) -c $(LEETCODE)
libleetcode: $(LEETCODE)
$(CC) $(CFLAGS) -c $(LEETCODE) $(LM)
rm lc*.o

id0001$(E): src/id0001.c libeuler$(A)
$(CC) $(CFLAGS) $< -o $@ $(LEULER)
$(CC) $(CFLAGS) $< -o $@ $(LEULER) $(LM)

id0002$(E): src/id0002.c libeuler$(A)
$(CC) $(CFLAGS) $< -o $@ $(LEULER)
$(CC) $(CFLAGS) $< -o $@ $(LEULER) $(LM)

id0003$(E): src/id0003.c libeuler$(A)
$(CC) $(CFLAGS) $< -o $@ $(LEULER)
$(CC) $(CFLAGS) $< -o $@ $(LEULER) $(LM)

id0004$(E): src/id0004.c libeuler$(A)
$(CC) $(CFLAGS) $< -o $@ $(LEULER)
$(CC) $(CFLAGS) $< -o $@ $(LEULER) $(LM)

id0005$(E): src/id0005.c libeuler$(A)
$(CC) $(CFLAGS) $< -o $@ $(LEULER)
$(CC) $(CFLAGS) $< -o $@ $(LEULER) $(LM)

id0006$(E): src/id0006.c libeuler$(A)
$(CC) $(CFLAGS) $< -o $@ $(LEULER)
$(CC) $(CFLAGS) $< -o $@ $(LEULER) $(LM)

id0007$(E): src/id0007.c libeuler$(A)
$(CC) $(CFLAGS) $< -o $@ $(LEULER)
$(CC) $(CFLAGS) $< -o $@ $(LEULER) $(LM)

id0008$(E): src/id0008.c libeuler$(A)
$(CC) $(CFLAGS) $< -o $@ $(LEULER)
$(CC) $(CFLAGS) $< -o $@ $(LEULER) $(LM)

id0009$(E): src/id0009.c libeuler$(A)
$(CC) $(CFLAGS) $< -o $@ $(LEULER)
$(CC) $(CFLAGS) $< -o $@ $(LEULER) $(LM)

id0010$(E): src/id0010.c libeuler$(A)
$(CC) $(CFLAGS) $< -o $@ $(LEULER)
$(CC) $(CFLAGS) $< -o $@ $(LEULER) $(LM)

id0011$(E): src/id0011.c libeuler$(A)
$(CC) $(CFLAGS) $< -o $@ $(LEULER)
$(CC) $(CFLAGS) $< -o $@ $(LEULER) $(LM)

id0012$(E): src/id0012.c libeuler$(A)
$(CC) $(CFLAGS) $< -o $@ $(LEULER)
$(CC) $(CFLAGS) $< -o $@ $(LEULER) $(LM)

id0013$(E): src/id0013.c libeuler$(A)
$(CC) $(CFLAGS) $< -o $@ $(LEULER)
$(CC) $(CFLAGS) $< -o $@ $(LEULER) $(LM)

id0014$(E): src/id0014.c libeuler$(A)
$(CC) $(CFLAGS) $< -o $@ $(LEULER)
$(CC) $(CFLAGS) $< -o $@ $(LEULER) $(LM)

id0015$(E): src/id0015.c libeuler$(A)
$(CC) $(CFLAGS) $< -o $@ $(LEULER)
$(CC) $(CFLAGS) $< -o $@ $(LEULER) $(LM)

id0016$(E): src/id0016.c libeuler$(A)
$(CC) $(CFLAGS) $< -o $@ $(LEULER) $(LGMP)
$(CC) $(CFLAGS) $< -o $@ $(LEULER) $(LM) $(LGMP)

id0017$(E): src/id0017.c libeuler$(A)
$(CC) $(CFLAGS) $< -o $@ $(LEULER)
$(CC) $(CFLAGS) $< -o $@ $(LEULER) $(LM)

id0018$(E): src/id0018.c libeuler$(A)
$(CC) $(CFLAGS) $< -o $@ $(LEULER)
$(CC) $(CFLAGS) $< -o $@ $(LEULER) $(LM)

id0019$(E): src/id0019.c libeuler$(A)
$(CC) $(CFLAGS) $< -o $@ $(LEULER)
$(CC) $(CFLAGS) $< -o $@ $(LEULER) $(LM)

id0020$(E): src/id0020.c libeuler$(A)
$(CC) $(CFLAGS) $< -o $@ $(LEULER) $(LGMP)
$(CC) $(CFLAGS) $< -o $@ $(LEULER) $(LM) $(LGMP)

id0021$(E): src/id0021.c libeuler$(A)
$(CC) $(CFLAGS) $< -o $@ $(LEULER)
$(CC) $(CFLAGS) $< -o $@ $(LEULER) $(LM)

id0022$(E): src/id0022.c libeuler$(A)
$(CC) $(CFLAGS) $< -o $@ $(LEULER)
$(CC) $(CFLAGS) $< -o $@ $(LEULER) $(LM)

id0023$(E): src/id0023.c libeuler$(A)
$(CC) $(CFLAGS) $< -o $@ $(LEULER)
$(CC) $(CFLAGS) $< -o $@ $(LEULER) $(LM)

id0024$(E): src/id0024.c libeuler$(A)
$(CC) $(CFLAGS) $< -o $@ $(LEULER)
$(CC) $(CFLAGS) $< -o $@ $(LEULER) $(LM)

id0025$(E): src/id0025.c libeuler$(A)
$(CC) $(CFLAGS) $< -o $@ $(LEULER) $(LGMP)
$(CC) $(CFLAGS) $< -o $@ $(LEULER) $(LM) $(LGMP)

id0026$(E): src/id0026.c libeuler$(A)
$(CC) $(CFLAGS) $< -o $@ $(LEULER)
$(CC) $(CFLAGS) $< -o $@ $(LEULER) $(LM)

id0027$(E): src/id0027.c libeuler$(A)
$(CC) $(CFLAGS) $< -o $@ $(LEULER)
$(CC) $(CFLAGS) $< -o $@ $(LEULER) $(LM)

id0028$(E): src/id0028.c libeuler$(A)
$(CC) $(CFLAGS) $< -o $@ $(LEULER)
$(CC) $(CFLAGS) $< -o $@ $(LEULER) $(LM)

id0029$(E): src/id0029.c libeuler$(A)
$(CC) $(CFLAGS) $< -o $@ $(LEULER)
$(CC) $(CFLAGS) $< -o $@ $(LEULER) $(LM)

id0030$(E): src/id0030.c libeuler$(A)
$(CC) $(CFLAGS) $< -o $@ $(LEULER)
$(CC) $(CFLAGS) $< -o $@ $(LEULER) $(LM)

id0031$(E): src/id0031.c libeuler$(A)
$(CC) $(CFLAGS) $< -o $@ $(LEULER)
$(CC) $(CFLAGS) $< -o $@ $(LEULER) $(LM)

id0032$(E): src/id0032.c libeuler$(A)
$(CC) $(CFLAGS) $< -o $@ $(LEULER)
$(CC) $(CFLAGS) $< -o $@ $(LEULER) $(LM)

id0033$(E): src/id0033.c libeuler$(A)
$(CC) $(CFLAGS) $< -o $@ $(LEULER)
$(CC) $(CFLAGS) $< -o $@ $(LEULER) $(LM)

id0034$(E): src/id0034.c libeuler$(A)
$(CC) $(CFLAGS) $< -o $@ $(LEULER)
$(CC) $(CFLAGS) $< -o $@ $(LEULER) $(LM)

id0035$(E): src/id0035.c libeuler$(A)
$(CC) $(CFLAGS) $< -o $@ $(LEULER)
$(CC) $(CFLAGS) $< -o $@ $(LEULER) $(LM)

id0036$(E): src/id0036.c libeuler$(A)
$(CC) $(CFLAGS) $< -o $@ $(LEULER)
$(CC) $(CFLAGS) $< -o $@ $(LEULER) $(LM)

id0037$(E): src/id0037.c libeuler$(A)
$(CC) $(CFLAGS) $< -o $@ $(LEULER)
$(CC) $(CFLAGS) $< -o $@ $(LEULER) $(LM)

id0038$(E): src/id0038.c libeuler$(A)
$(CC) $(CFLAGS) $< -o $@ $(LEULER)
$(CC) $(CFLAGS) $< -o $@ $(LEULER) $(LM)

id0039$(E): src/id0039.c libeuler$(A)
$(CC) $(CFLAGS) $< -o $@ $(LEULER)
$(CC) $(CFLAGS) $< -o $@ $(LEULER) $(LM)

id0040$(E): src/id0040.c libeuler$(A)
$(CC) $(CFLAGS) $< -o $@ $(LEULER)
$(CC) $(CFLAGS) $< -o $@ $(LEULER) $(LM)

id0041$(E): src/id0041.c libeuler$(A)
$(CC) $(CFLAGS) $< -o $@ $(LEULER)
$(CC) $(CFLAGS) $< -o $@ $(LEULER) $(LM)

id0042$(E): src/id0042.c libeuler$(A)
$(CC) $(CFLAGS) $< -o $@ $(LEULER)
$(CC) $(CFLAGS) $< -o $@ $(LEULER) $(LM)

id0043$(E): src/id0043.c libeuler$(A)
$(CC) $(CFLAGS) $< -o $@ $(LEULER)
$(CC) $(CFLAGS) $< -o $@ $(LEULER) $(LM)

id0044$(E): src/id0044.c libeuler$(A)
$(CC) $(CFLAGS) $< -o $@ $(LEULER)
$(CC) $(CFLAGS) $< -o $@ $(LEULER) $(LM)

id0045$(E): src/id0045.c libeuler$(A)
$(CC) $(CFLAGS) $< -o $@ $(LEULER)
$(CC) $(CFLAGS) $< -o $@ $(LEULER) $(LM)

id0046$(E): src/id0046.c libeuler$(A)
$(CC) $(CFLAGS) $< -o $@ $(LEULER)
$(CC) $(CFLAGS) $< -o $@ $(LEULER) $(LM)

id0047$(E): src/id0047.c libeuler$(A)
$(CC) $(CFLAGS) $< -o $@ $(LEULER)
$(CC) $(CFLAGS) $< -o $@ $(LEULER) $(LM)

id0048$(E): src/id0048.c libeuler$(A)
$(CC) $(CFLAGS) $< -o $@ $(LEULER) $(LGMP)
$(CC) $(CFLAGS) $< -o $@ $(LEULER) $(LM) $(LGMP)

id0049$(E): src/id0049.c libeuler$(A)
$(CC) $(CFLAGS) $< -o $@ $(LEULER)
$(CC) $(CFLAGS) $< -o $@ $(LEULER) $(LM)

id0050$(E): src/id0050.c libeuler$(A)
$(CC) $(CFLAGS) $< -o $@ $(LEULER)
$(CC) $(CFLAGS) $< -o $@ $(LEULER) $(LM)

id0051$(E): src/id0051.c libeuler$(A)
$(CC) $(CFLAGS) $< -o $@ $(LEULER)
$(CC) $(CFLAGS) $< -o $@ $(LEULER) $(LM)

id0052$(E): src/id0052.c libeuler$(A)
$(CC) $(CFLAGS) $< -o $@ $(LEULER)
$(CC) $(CFLAGS) $< -o $@ $(LEULER) $(LM)

id0053$(E): src/id0053.c libeuler$(A)
$(CC) $(CFLAGS) $(TWOS_COMPLEMENT) $< -o $@ $(LEULER)
$(CC) $(CFLAGS) $(TWOS_COMPLEMENT) $< -o $@ $(LEULER) $(LM)

id0054$(E): src/id0054.c libeuler$(A)
$(CC) $(CFLAGS) $< -o $@ $(LEULER)
$(CC) $(CFLAGS) $< -o $@ $(LEULER) $(LM)

id0055$(E): src/id0055.c libeuler$(A)
$(CC) $(CFLAGS) $(TWOS_COMPLEMENT) $< -o $@ $(LEULER)
$(CC) $(CFLAGS) $(TWOS_COMPLEMENT) $< -o $@ $(LEULER) $(LM)

id0056$(E): src/id0056.c libeuler$(A)
$(CC) $(CFLAGS) $< -o $@ $(LEULER) $(LGMP)
$(CC) $(CFLAGS) $< -o $@ $(LEULER) $(LM) $(LGMP)

id0057$(E): src/id0057.c libeuler$(A)
$(CC) $(CFLAGS) $< -o $@ $(LEULER) $(LGMP)
$(CC) $(CFLAGS) $< -o $@ $(LEULER) $(LM) $(LGMP)

id0058$(E): src/id0058.c libeuler$(A)
$(CC) $(CFLAGS) $< -o $@ $(LEULER)
$(CC) $(CFLAGS) $< -o $@ $(LEULER) $(LM)

id0059$(E): src/id0059.c libeuler$(A)
$(CC) $(CFLAGS) $< -o $@ $(LEULER)
$(CC) $(CFLAGS) $< -o $@ $(LEULER) $(LM)

id0060$(E): src/id0060.c libeuler$(A)
$(CC) $(CFLAGS) $< -o $@ $(LEULER)
$(CC) $(CFLAGS) $< -o $@ $(LEULER) $(LM)

id0061$(E): src/id0061.c libeuler$(A)
$(CC) $(CFLAGS) $< -o $@ $(LEULER)
$(CC) $(CFLAGS) $< -o $@ $(LEULER) $(LM)

id0062$(E): src/id0062.c libeuler$(A)
$(CC) $(CFLAGS) $< -o $@ $(LEULER)
$(CC) $(CFLAGS) $< -o $@ $(LEULER) $(LM)

id0063$(E): src/id0063.c libeuler$(A)
$(CC) $(CFLAGS) $< -o $@ $(LEULER)
$(CC) $(CFLAGS) $< -o $@ $(LEULER) $(LM)

id0064$(E): src/id0064.c libeuler$(A)
$(CC) $(CFLAGS) $< -o $@ $(LEULER)
$(CC) $(CFLAGS) $< -o $@ $(LEULER) $(LM)

id0065$(E): src/id0065.c libeuler$(A)
$(CC) $(CFLAGS) $< -o $@ $(LEULER) $(LGMP)
$(CC) $(CFLAGS) $< -o $@ $(LEULER) $(LM) $(LGMP)

id0066$(E): src/id0066.c libeuler$(A)
$(CC) $(CFLAGS) $< -o $@ $(LEULER) $(LGMP)
$(CC) $(CFLAGS) $< -o $@ $(LEULER) $(LM) $(LGMP)

id0068$(E): src/id0068.c libeuler$(A)
$(CC) $(CFLAGS) $< -o $@ $(LEULER)
$(CC) $(CFLAGS) $< -o $@ $(LEULER) $(LM)

id0069$(E): src/id0069.c libeuler$(A)
$(CC) $(CFLAGS) $< -o $@ $(LEULER)
$(CC) $(CFLAGS) $< -o $@ $(LEULER) $(LM)

id0070$(E): src/id0070.c libeuler$(A)
$(CC) $(CFLAGS) $< -o $@ $(LEULER)
$(CC) $(CFLAGS) $< -o $@ $(LEULER) $(LM)

id0071$(E): src/id0071.c libeuler$(A)
$(CC) $(CFLAGS) $< -o $@ $(LEULER)
$(CC) $(CFLAGS) $< -o $@ $(LEULER) $(LM)

id0072$(E): src/id0072.c libeuler$(A)
$(CC) $(CFLAGS) $< -o $@ $(LEULER)
$(CC) $(CFLAGS) $< -o $@ $(LEULER) $(LM)

id0073$(E): src/id0073.c libeuler$(A)
$(CC) $(CFLAGS) $< -o $@ $(LEULER)
$(CC) $(CFLAGS) $< -o $@ $(LEULER) $(LM)

id0074$(E): src/id0074.c libeuler$(A)
$(CC) $(CFLAGS) $< -o $@ $(LEULER)
$(CC) $(CFLAGS) $< -o $@ $(LEULER) $(LM)

id0075$(E): src/id0075.c libeuler$(A)
$(CC) $(CFLAGS) $< -o $@ $(LEULER)
$(CC) $(CFLAGS) $< -o $@ $(LEULER) $(LM)

clean:
$(RM) *$(A) *$(O)
$(RM) *$(A) *.o
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,7 @@ which is licensed under the GNU Lesser General Public License v3.0 (`LGPL-3.0`).
| 62 | [Unique Paths](src/lc0062.c) | Combinatorics | Binomial coefficient | `binomial` |
| 69 | [Sqrt(x)](src/lc0069.c) | Mathematics | Square root | `sqrt` |
| 75 | [Sort Colors](src/lc0075.c) | Sorting | Sort | `qsort` |
| 367 | [Valid Perfect Square](src/lc0367.c) | Mathematics | Boolean | `is_polygonal` |
| 367 | [Valid Perfect Square](src/lc0367.c) | Mathematics | Boolean | `math_is_polygonal` |
| 2119 | [A Number After a Double Reversal](src/lc2119.c) | Mathematics | Boolean | `math_reverse` |
| 2400 | [Number of Ways to Reach a Position After Exactly k Steps](src/lc2400.c) | Combinatorics | Binomial coefficient | `binomial` |
| 2550 | [Monkey Move](src/lc2550.c) | Combinatorics | Power | `mod_pow` |
1 change: 1 addition & 0 deletions src/lc0075.c
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

// Sort Colors

#include <stdlib.h>
#include "../lib/comparer.h"

void sortColors(int items[], int length)
Expand Down

0 comments on commit 8262a08

Please sign in to comment.