Makefile
· 2.9 KiB · Makefile
Raw
BASE?=$(HOME)/src
TAILWIND = $(BASE)/tailwind
LCSS = $(BASE)/lightningcss
NODE_ARCH != node -p "process.arch"
.PHONY: all clean
all: $(TAILWIND)/.cli-built
$(TAILWIND)/node_modules: $(TAILWIND)
cd $(TAILWIND) && doas corepack enable && doas corepack install --global pnpm && pnpm install --ignore-scripts
$(TAILWIND):
git clone https://github.com/tailwindlabs/tailwindcss.git $@
$(LCSS):
git clone https://github.com/parcel-bundler/lightningcss.git $@
$(TAILWIND)/.lcss-built: $(LCSS) $(TAILWIND)/node_modules
LCSS_DIR=$$(ls $(TAILWIND)/node_modules/.pnpm | grep "^lightningcss@" | head -1); \
LCSS_VER=$$(echo $$LCSS_DIR | sed 's/lightningcss@\([0-9.]*\).*/\1/'); \
LCSS_PKGS=$(TAILWIND)/node_modules/.pnpm/$$LCSS_DIR/node_modules; \
LCSS_NATIVE=$$LCSS_PKGS/lightningcss-freebsd-$(NODE_ARCH); \
git -C $(LCSS) checkout v$$LCSS_VER; \
cd $(LCSS) && cargo build --release -p lightningcss_node && \
mkdir -p $$LCSS_NATIVE && \
cp target/release/liblightningcss_node.so $$LCSS_NATIVE/lightningcss.freebsd-$(NODE_ARCH).node && \
printf '{"name":"lightningcss-freebsd-$(NODE_ARCH)","version":"%s","main":"lightningcss.freebsd-$(NODE_ARCH).node"}\n' $$LCSS_VER \
> $$LCSS_NATIVE/package.json && \
node -e "require('$$LCSS_PKGS/lightningcss')" && \
touch $@
$(TAILWIND)/.oxide-built: $(TAILWIND)/node_modules
cd $(TAILWIND) && cargo build --release -p tailwind-oxide && \
cp target/release/libtailwind_oxide.so \
"$(TAILWIND)/crates/node/tailwindcss-oxide.freebsd-$(NODE_ARCH).node" && \
cd $(TAILWIND)/crates/node && pnpm run build:platform && \
touch $@
$(TAILWIND)/.parcel-built: $(TAILWIND)/node_modules
for dir in $$(ls -d $(TAILWIND)/node_modules/.pnpm/@parcel+watcher@*/node_modules/@parcel/watcher); do \
WATCHER_VER=$$(node -p "require('$$dir/package.json').version"); \
WATCHER_NATIVE=$$dir/../watcher-freebsd-$(NODE_ARCH); \
rm -rf $$dir/build; \
cd $$dir && node-gyp rebuild --python=python3.13 || true; \
mkdir -p $$WATCHER_NATIVE; \
cp $$dir/build/Release/watcher.node $$WATCHER_NATIVE/; \
printf '{"name":"@parcel/watcher-freebsd-$(NODE_ARCH)","version":"%s","main":"watcher.node"}\n' $$WATCHER_VER \
> $$WATCHER_NATIVE/package.json; \
node -e "require('$$dir')" || true; \
done && touch $@
$(TAILWIND)/.pkg-fixed: $(TAILWIND)
sed -i.bak 's|"import": "./src/index.ts"|"import": "./dist/lib.mjs"|' \
$(TAILWIND)/packages/tailwindcss/package.json && \
touch $@
$(TAILWIND)/.tailwindcss-built: $(TAILWIND)/.pkg-fixed $(TAILWIND)/.lcss-built
cd $(TAILWIND)/packages/tailwindcss && pnpm run build && \
touch $@
$(TAILWIND)/.node-built: $(TAILWIND)/.tailwindcss-built $(TAILWIND)/.oxide-built $(TAILWIND)/.parcel-built
cd $(TAILWIND)/packages/@tailwindcss-node && pnpm run build && \
touch $@
$(TAILWIND)/.cli-built: $(TAILWIND)/.node-built
cd $(TAILWIND)/packages/@tailwindcss-cli && pnpm run build && \
touch $@
clean:
rm -rf $(TAILWIND) $(LCSS)
| 1 | BASE?=$(HOME)/src |
| 2 | TAILWIND = $(BASE)/tailwind |
| 3 | LCSS = $(BASE)/lightningcss |
| 4 | NODE_ARCH != node -p "process.arch" |
| 5 | |
| 6 | .PHONY: all clean |
| 7 | |
| 8 | all: $(TAILWIND)/.cli-built |
| 9 | |
| 10 | $(TAILWIND)/node_modules: $(TAILWIND) |
| 11 | cd $(TAILWIND) && doas corepack enable && doas corepack install --global pnpm && pnpm install --ignore-scripts |
| 12 | |
| 13 | $(TAILWIND): |
| 14 | git clone https://github.com/tailwindlabs/tailwindcss.git $@ |
| 15 | |
| 16 | $(LCSS): |
| 17 | git clone https://github.com/parcel-bundler/lightningcss.git $@ |
| 18 | |
| 19 | $(TAILWIND)/.lcss-built: $(LCSS) $(TAILWIND)/node_modules |
| 20 | LCSS_DIR=$$(ls $(TAILWIND)/node_modules/.pnpm | grep "^lightningcss@" | head -1); \ |
| 21 | LCSS_VER=$$(echo $$LCSS_DIR | sed 's/lightningcss@\([0-9.]*\).*/\1/'); \ |
| 22 | LCSS_PKGS=$(TAILWIND)/node_modules/.pnpm/$$LCSS_DIR/node_modules; \ |
| 23 | LCSS_NATIVE=$$LCSS_PKGS/lightningcss-freebsd-$(NODE_ARCH); \ |
| 24 | git -C $(LCSS) checkout v$$LCSS_VER; \ |
| 25 | cd $(LCSS) && cargo build --release -p lightningcss_node && \ |
| 26 | mkdir -p $$LCSS_NATIVE && \ |
| 27 | cp target/release/liblightningcss_node.so $$LCSS_NATIVE/lightningcss.freebsd-$(NODE_ARCH).node && \ |
| 28 | printf '{"name":"lightningcss-freebsd-$(NODE_ARCH)","version":"%s","main":"lightningcss.freebsd-$(NODE_ARCH).node"}\n' $$LCSS_VER \ |
| 29 | > $$LCSS_NATIVE/package.json && \ |
| 30 | node -e "require('$$LCSS_PKGS/lightningcss')" && \ |
| 31 | touch $@ |
| 32 | |
| 33 | $(TAILWIND)/.oxide-built: $(TAILWIND)/node_modules |
| 34 | cd $(TAILWIND) && cargo build --release -p tailwind-oxide && \ |
| 35 | cp target/release/libtailwind_oxide.so \ |
| 36 | "$(TAILWIND)/crates/node/tailwindcss-oxide.freebsd-$(NODE_ARCH).node" && \ |
| 37 | cd $(TAILWIND)/crates/node && pnpm run build:platform && \ |
| 38 | touch $@ |
| 39 | |
| 40 | $(TAILWIND)/.parcel-built: $(TAILWIND)/node_modules |
| 41 | for dir in $$(ls -d $(TAILWIND)/node_modules/.pnpm/@parcel+watcher@*/node_modules/@parcel/watcher); do \ |
| 42 | WATCHER_VER=$$(node -p "require('$$dir/package.json').version"); \ |
| 43 | WATCHER_NATIVE=$$dir/../watcher-freebsd-$(NODE_ARCH); \ |
| 44 | rm -rf $$dir/build; \ |
| 45 | cd $$dir && node-gyp rebuild --python=python3.13 || true; \ |
| 46 | mkdir -p $$WATCHER_NATIVE; \ |
| 47 | cp $$dir/build/Release/watcher.node $$WATCHER_NATIVE/; \ |
| 48 | printf '{"name":"@parcel/watcher-freebsd-$(NODE_ARCH)","version":"%s","main":"watcher.node"}\n' $$WATCHER_VER \ |
| 49 | > $$WATCHER_NATIVE/package.json; \ |
| 50 | node -e "require('$$dir')" || true; \ |
| 51 | done && touch $@ |
| 52 | |
| 53 | $(TAILWIND)/.pkg-fixed: $(TAILWIND) |
| 54 | sed -i.bak 's|"import": "./src/index.ts"|"import": "./dist/lib.mjs"|' \ |
| 55 | $(TAILWIND)/packages/tailwindcss/package.json && \ |
| 56 | touch $@ |
| 57 | |
| 58 | $(TAILWIND)/.tailwindcss-built: $(TAILWIND)/.pkg-fixed $(TAILWIND)/.lcss-built |
| 59 | cd $(TAILWIND)/packages/tailwindcss && pnpm run build && \ |
| 60 | touch $@ |
| 61 | |
| 62 | $(TAILWIND)/.node-built: $(TAILWIND)/.tailwindcss-built $(TAILWIND)/.oxide-built $(TAILWIND)/.parcel-built |
| 63 | cd $(TAILWIND)/packages/@tailwindcss-node && pnpm run build && \ |
| 64 | touch $@ |
| 65 | |
| 66 | $(TAILWIND)/.cli-built: $(TAILWIND)/.node-built |
| 67 | cd $(TAILWIND)/packages/@tailwindcss-cli && pnpm run build && \ |
| 68 | touch $@ |
| 69 | |
| 70 | clean: |
| 71 | rm -rf $(TAILWIND) $(LCSS) |
| 72 |