mirror of
https://github.com/kenzok8/small-package
synced 2025-01-05 11:36:47 +08:00
update 2024-12-09 00:23:41
This commit is contained in:
parent
c54ed1e363
commit
bc66930bd8
@ -7,7 +7,7 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=floatip
|
||||
PKG_VERSION:=1.0.2
|
||||
PKG_VERSION:=1.0.4
|
||||
PKG_RELEASE:=1
|
||||
PKG_MAINTAINER:=jjm2473 <jjm2473@gmail.com>
|
||||
|
||||
@ -18,6 +18,7 @@ define Package/$(PKG_NAME)
|
||||
CATEGORY:=Network
|
||||
SUBMENU:=IP Addresses and Names
|
||||
TITLE:=Float IP
|
||||
DEPENDS:=+iputils-arping
|
||||
PKGARCH:=all
|
||||
endef
|
||||
|
||||
|
@ -12,35 +12,33 @@ start_service() {
|
||||
local set_ip set_prefix
|
||||
config_get set_ip "main" set_ip
|
||||
[[ -n "$set_ip" ]] || return 0
|
||||
eval "$(ipcalc.sh "$set_ip" )";set_prefix=$PREFIX;set_ip=$IP
|
||||
[[ "$set_ip" = 0.0.0.0 ]] && set_ip=192.168.100.3
|
||||
[[ "$set_prefix" = 0 ]] && set_prefix=32
|
||||
if [[ "$set_ip" = "*/*" ]]; then
|
||||
eval "$(ipcalc.sh "$set_ip" )";set_prefix=$PREFIX;set_ip=$IP
|
||||
else
|
||||
set_prefix=32
|
||||
fi
|
||||
local lan_ip="`uci -q get network.lan.ipaddr`"
|
||||
[[ -n "$lan_ip" ]] || return 0
|
||||
local lan_net lan_prefix set_net ip
|
||||
local in_range=0
|
||||
if echo "$lan_ip" | grep -Fq '/'; then
|
||||
for ip in $lan_ip; do
|
||||
eval "$(ipcalc.sh ${ip/\// } )";lan_net=$NETWORK;lan_prefix=$PREFIX
|
||||
[[ "$set_prefix" -ge "$lan_prefix" ]] || continue
|
||||
eval "$(ipcalc.sh $set_ip $lan_prefix } )";set_net=$NETWORK
|
||||
[[ "$set_net" = "$lan_net" ]] && {
|
||||
[[ "$set_prefix" = 32 ]] && set_prefix=$lan_prefix
|
||||
in_range=1
|
||||
break
|
||||
}
|
||||
done
|
||||
else
|
||||
local netmask="`uci -q get network.lan.netmask`"
|
||||
eval "$(ipcalc.sh "$lan_ip" "$netmask" )";lan_net=$NETWORK;lan_prefix=$PREFIX
|
||||
if [[ "$set_prefix" -ge "$lan_prefix" ]]; then
|
||||
eval "$(ipcalc.sh $set_ip $lan_prefix } )";set_net=$NETWORK
|
||||
if [[ "$set_net" = "$lan_net" ]]; then
|
||||
[[ "$set_prefix" = 32 ]] && set_prefix=$lan_prefix
|
||||
in_range=1
|
||||
fi
|
||||
local lan_netmask="`uci -q get network.lan.netmask`"
|
||||
for ip in $lan_ip; do
|
||||
if [[ "$ip" = "*/*" ]]; then
|
||||
eval "$(ipcalc.sh $ip )";lan_net=$NETWORK;lan_prefix=$PREFIX
|
||||
else
|
||||
# prefix=32 if not present
|
||||
[[ -n "$lan_netmask" ]] || continue
|
||||
eval "$(ipcalc.sh $ip $lan_netmask )";lan_net=$NETWORK;lan_prefix=$PREFIX
|
||||
fi
|
||||
fi
|
||||
[[ "$set_prefix" -ge "$lan_prefix" ]] || continue
|
||||
eval "$(ipcalc.sh $set_ip/$lan_prefix )";set_net=$NETWORK
|
||||
[[ "$set_net" = "$lan_net" ]] && {
|
||||
[[ "$set_prefix" = 32 ]] && set_prefix=$lan_prefix
|
||||
in_range=1
|
||||
break
|
||||
}
|
||||
done
|
||||
|
||||
[[ $in_range = 1 ]] || return 0
|
||||
procd_open_instance
|
||||
procd_set_param command /usr/libexec/floatip.sh "$set_prefix"
|
||||
|
@ -11,8 +11,10 @@ random() {
|
||||
echo ${num:-1}
|
||||
}
|
||||
|
||||
# check host alive, timeout in 2 seconds
|
||||
host_alive() {
|
||||
ping -4 -c 2 -A -t 1 -W 1 -q "$1" >/dev/null
|
||||
# ping -4 -c 2 -A -t 1 -W 1 -q "$1" >/dev/null
|
||||
arping -f -q -b -c 2 -w 2 -i 1 -I br-lan "$1"
|
||||
}
|
||||
|
||||
set_up() {
|
||||
@ -44,14 +46,15 @@ fallback_loop() {
|
||||
local set_ip check_ip set_net set_prefix
|
||||
config_get set_ip "main" set_ip
|
||||
config_get check_ip "main" check_ip
|
||||
[[ "$set_ip" = "*/*" ]] || set_ip="$set_ip/32"
|
||||
eval "$(ipcalc.sh "$set_ip" )";set_net=$NETWORK;set_prefix=$PREFIX;set_ip=$IP
|
||||
[[ "$set_net" = 0.0.0.0 ]] && set_net=192.168.100.0
|
||||
[[ "$set_prefix" = 0 ]] && set_prefix=$DEFAULT_PREFIX
|
||||
[[ "$set_prefix" = 32 ]] && set_prefix=$DEFAULT_PREFIX
|
||||
[[ "$set_ip" = 0.0.0.0 ]] && set_ip=192.168.100.3
|
||||
local ipaddr="$set_ip/$set_prefix"
|
||||
local valid_check_ip cip
|
||||
for cip in $check_ip; do
|
||||
eval "$(ipcalc.sh $cip $set_prefix )"
|
||||
eval "$(ipcalc.sh $cip/$set_prefix )"
|
||||
[[ "$NETWORK" = "$set_net" ]] && valid_check_ip="$valid_check_ip $cip"
|
||||
done
|
||||
valid_check_ip="$valid_check_ip "
|
||||
@ -103,9 +106,10 @@ fallback_loop() {
|
||||
main_loop() {
|
||||
local set_ip set_net set_prefix
|
||||
config_get set_ip "main" set_ip
|
||||
[[ "$set_ip" = "*/*" ]] || set_ip="$set_ip/32"
|
||||
eval "$(ipcalc.sh "$set_ip" )";set_net=$NETWORK;set_prefix=$PREFIX;set_ip=$IP
|
||||
[[ "$set_net" = 0.0.0.0 ]] && set_net=192.168.100.0
|
||||
[[ "$set_prefix" = 0 ]] && set_prefix=$DEFAULT_PREFIX
|
||||
[[ "$set_prefix" = 32 ]] && set_prefix=$DEFAULT_PREFIX
|
||||
[[ "$set_ip" = 0.0.0.0 ]] && set_ip=192.168.100.3
|
||||
local ipaddr="$set_ip/$set_prefix"
|
||||
while :; do
|
||||
@ -133,6 +137,8 @@ main() {
|
||||
fi
|
||||
}
|
||||
|
||||
[[ -n "$1" && "$1" -ge 0 && "$1" -lt 32 ]] && DEFAULT_PREFIX=$1
|
||||
if [[ -n "$1" ]]; then
|
||||
[[ "$1" -ge 0 && "$1" -lt 32 ]] && DEFAULT_PREFIX=$1
|
||||
fi
|
||||
|
||||
main
|
||||
|
@ -1,7 +1,7 @@
|
||||
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_VERSION:=1.0.4-20230408
|
||||
PKG_VERSION:=1.0.5-20241208
|
||||
PKG_RELEASE:=
|
||||
PKG_MAINTAINER:=jjm2473 <jjm2473@gmail.com>
|
||||
|
||||
|
@ -111,14 +111,15 @@ EOF
|
||||
[[ "`uci -q get network.lan.proto`" = "static" ]] && {
|
||||
local lan_ip="`uci -q get network.lan.ipaddr`"
|
||||
if [[ -n "$lan_ip" ]]; then
|
||||
if echo "$lan_ip" | grep -Fq '/'; then
|
||||
for bip in $lan_ip; do
|
||||
eval "$(ipcalc.sh ${bip/\// } )";black_ip="$black_ip $IP/$PREFIX"
|
||||
done
|
||||
else
|
||||
local netmask="`uci -q get network.lan.netmask`"
|
||||
eval "$(ipcalc.sh "$lan_ip" "$netmask" )";black_ip="$black_ip $IP/$PREFIX"
|
||||
fi
|
||||
local netmask="`uci -q get network.lan.netmask`"
|
||||
[[ -n "$netmask" ]] || netmask=255.255.255.255
|
||||
for bip in $lan_ip; do
|
||||
if [[ "$bip" = "*/*" ]]; then
|
||||
eval "$(ipcalc.sh $bip )";black_ip="$black_ip $IP/$PREFIX"
|
||||
else
|
||||
eval "$(ipcalc.sh $bip $netmask )";black_ip="$black_ip $IP/$PREFIX"
|
||||
fi
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
@ -133,32 +134,31 @@ EOF
|
||||
local vif
|
||||
for vif in lan wan; do
|
||||
config_get ipaddr $vif ipaddr
|
||||
[[ -z "$ipaddr" ]] || {
|
||||
for vip in $ipaddr; do
|
||||
ok=1
|
||||
eval "$(ipcalc.sh ${vip/\// } )";vip="$IP";vip_p="$PREFIX"
|
||||
[[ "$vip_p" = 32 ]] && {
|
||||
[[ -n "$ipaddr" ]] || continue
|
||||
for vip in $ipaddr; do
|
||||
ok=1
|
||||
[[ "$vip" = "*/*" ]] || vip="$vip/24"
|
||||
eval "$(ipcalc.sh $vip )";vip="$IP";vip_p="$PREFIX"
|
||||
[[ "$vip_p" = 32 ]] && {
|
||||
logger -t 'ap_modem' -p DEBUG "vap_$vif skip $vip/$vip_p"
|
||||
break
|
||||
}
|
||||
for bip in $black_ip; do
|
||||
eval "$(ipcalc.sh "$bip" )";bip="$IP";
|
||||
[[ "$PREFIX" -le "$vip_p" ]] || PREFIX=$vip_p
|
||||
eval "$(ipcalc.sh "$vip/$PREFIX" )";vnet="$NETWORK";
|
||||
eval "$(ipcalc.sh "$bip/$PREFIX" )";bnet="$NETWORK";
|
||||
if [[ "$vnet" = "$bnet" ]]; then
|
||||
logger -t 'ap_modem' -p DEBUG "vap_$vif skip $vip/$vip_p"
|
||||
ok=0
|
||||
break
|
||||
}
|
||||
[[ "$vip_p" = 0 ]] && vip_p=24
|
||||
for bip in $black_ip; do
|
||||
eval "$(ipcalc.sh "$bip" )";bip="$IP";
|
||||
[[ "$PREFIX" -le "$vip_p" ]] || PREFIX=$vip_p
|
||||
eval "$(ipcalc.sh "$vip" "$PREFIX" )";vnet="$NETWORK";
|
||||
eval "$(ipcalc.sh "$bip" "$PREFIX" )";bnet="$NETWORK";
|
||||
if [[ "$vnet" = "$bnet" ]]; then
|
||||
logger -t 'ap_modem' -p DEBUG "vap_$vif skip $vip/$vip_p"
|
||||
ok=0
|
||||
break
|
||||
fi
|
||||
done
|
||||
[[ "$ok" = 1 ]] && {
|
||||
uci add_list "network.vap_$vif.ipaddr=$vip/$vip_p"
|
||||
black_ip="$black_ip $vip/$vip_p"
|
||||
}
|
||||
fi
|
||||
done
|
||||
}
|
||||
[[ "$ok" = 1 ]] && {
|
||||
uci add_list "network.vap_$vif.ipaddr=$vip/$vip_p"
|
||||
black_ip="$black_ip $vip/$vip_p"
|
||||
}
|
||||
done
|
||||
done
|
||||
|
||||
uci commit network
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_VERSION:=1.0.2-20241111
|
||||
PKG_VERSION:=1.0.2-20241208
|
||||
PKG_RELEASE:=
|
||||
|
||||
LUCI_TITLE:=LuCI support for bmtedge
|
||||
@ -13,6 +13,14 @@ define Package/luci-app-bmtedge/conffiles
|
||||
/etc/config/bmtedge
|
||||
endef
|
||||
|
||||
# prerm
|
||||
# postrm
|
||||
define Package/luci-app-bmtedge/prerm
|
||||
#!/bin/sh
|
||||
docker rm -f bmtedge
|
||||
exit 0
|
||||
endef
|
||||
|
||||
include $(TOPDIR)/feeds/luci/luci.mk
|
||||
|
||||
# call BuildPackage - OpenWrt buildroot signature
|
||||
|
18
luci-app-floatip/Makefile
Normal file
18
luci-app-floatip/Makefile
Normal file
@ -0,0 +1,18 @@
|
||||
# Copyright (C) 2016 Openwrt.org
|
||||
#
|
||||
# This is free software, licensed under the Apache License, Version 2.0 .
|
||||
#
|
||||
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
LUCI_TITLE:=LuCI support for floatip
|
||||
LUCI_DEPENDS:=+floatip
|
||||
LUCI_PKGARCH:=all
|
||||
PKG_VERSION:=0.1.1-1
|
||||
# PKG_RELEASE MUST be empty for luci.mk
|
||||
PKG_RELEASE:=
|
||||
|
||||
include $(TOPDIR)/feeds/luci/luci.mk
|
||||
|
||||
# call BuildPackage - OpenWrt buildroot signature
|
||||
|
24
luci-app-floatip/luasrc/controller/floatip.lua
Normal file
24
luci-app-floatip/luasrc/controller/floatip.lua
Normal file
@ -0,0 +1,24 @@
|
||||
module("luci.controller.floatip", package.seeall)
|
||||
|
||||
function index()
|
||||
if not nixio.fs.access("/etc/config/floatip") then
|
||||
return
|
||||
end
|
||||
|
||||
entry({"admin", "services", "floatip"}, cbi("floatip"), _("FloatingGateway"), 20).dependent = true
|
||||
|
||||
entry({"admin", "services", "floatip_status"}, call("floatip_status"))
|
||||
end
|
||||
|
||||
function floatip_status()
|
||||
local sys = require "luci.sys"
|
||||
local uci = require "luci.model.uci".cursor()
|
||||
|
||||
local status = {
|
||||
running = (sys.call("pidof floatip.sh >/dev/null") == 0),
|
||||
}
|
||||
|
||||
luci.http.prepare_content("application/json")
|
||||
luci.http.write_json(status)
|
||||
end
|
||||
|
50
luci-app-floatip/luasrc/model/cbi/floatip.lua
Normal file
50
luci-app-floatip/luasrc/model/cbi/floatip.lua
Normal file
@ -0,0 +1,50 @@
|
||||
local m, s, o
|
||||
|
||||
m = Map("floatip", translate("FloatingGateway"), translate("FloatingGateway allows two gateway within one lan which can switch between each other in case of a failure."))
|
||||
|
||||
m:section(SimpleSection).template = "floatip_status"
|
||||
|
||||
s=m:section(NamedSection, "main", translate("Global settings"))
|
||||
s.addremove=false
|
||||
s.anonymous=true
|
||||
|
||||
o = s:option(Flag, "enabled", translate("Enable"))
|
||||
o.rmempty = false
|
||||
|
||||
o = s:option(Value, "role", translate("Role"))
|
||||
o.rmempty = false
|
||||
o:value("main", translate("Preemptor"))
|
||||
o:value("fallback", translate("Fallback"))
|
||||
|
||||
o = s:option(Value, "set_ip", translate("Floating Gateway IP"))
|
||||
o.rmempty = false
|
||||
function o.validate(self, value)
|
||||
local ip, mask = value:match("(%d+%.%d+%.%d+%.%d+)/?(%d*)")
|
||||
if not ip then
|
||||
return nil, "Invalid format."
|
||||
end
|
||||
|
||||
-- 验证 IP 地址格式
|
||||
for octet in ip:gmatch("%d+") do
|
||||
if tonumber(octet) < 0 or tonumber(octet) > 255 then
|
||||
return nil, "IP address octets must be between 0 and 255"
|
||||
end
|
||||
end
|
||||
|
||||
-- 验证子网掩码(如果存在)
|
||||
if mask ~= nil and mask ~= "" then
|
||||
local netmask = tonumber(mask)
|
||||
if netmask < 0 or netmask > 32 then
|
||||
return nil, "Netmask must be between 0 and 32"
|
||||
end
|
||||
end
|
||||
|
||||
return value
|
||||
end
|
||||
|
||||
o = s:option(Value, "check_ip", translate("Check IP"))
|
||||
o.rmempty = false
|
||||
o.datatype = "ipaddr"
|
||||
o:depends("role", "fallback")
|
||||
|
||||
return m
|
26
luci-app-floatip/luasrc/view/floatip_status.htm
Normal file
26
luci-app-floatip/luasrc/view/floatip_status.htm
Normal file
@ -0,0 +1,26 @@
|
||||
<script type="text/javascript">//<![CDATA[
|
||||
XHR.poll(5, '<%=url("admin/services/floatip_status")%>', null,
|
||||
function(x, st)
|
||||
{
|
||||
var tb = document.getElementById('floatip_status');
|
||||
if (st && tb)
|
||||
{
|
||||
if (st.running)
|
||||
{
|
||||
tb.innerHTML = '<br/><em style=\"color:green\"><%:The floatip service is running.%></em>';
|
||||
}
|
||||
else
|
||||
{
|
||||
tb.innerHTML = '<br/><em style=\"color:red\"><%:The floatip service is not running.%></em>';
|
||||
}
|
||||
}
|
||||
}
|
||||
);
|
||||
//]]></script>
|
||||
|
||||
<fieldset class="cbi-section">
|
||||
<legend><%:FloatIP Status%></legend>
|
||||
<p id="floatip_status">
|
||||
<em><%:Collecting data...%></em>
|
||||
</p>
|
||||
</fieldset>
|
32
luci-app-floatip/po/zh-cn/floatip.po
Normal file
32
luci-app-floatip/po/zh-cn/floatip.po
Normal file
@ -0,0 +1,32 @@
|
||||
msgid "FloatingGateway"
|
||||
msgstr "浮动网关"
|
||||
|
||||
msgid "Running state"
|
||||
msgstr "运行状态"
|
||||
|
||||
msgid "FloatingGateway allows two gateway within one lan which can switch between each other in case of a failure."
|
||||
msgstr "浮动网关可以让你在内网有两个相互备份的网关,出现问题会相互切换。"
|
||||
|
||||
msgid "The FloatingGateway service is running."
|
||||
msgstr "服务已启动"
|
||||
|
||||
msgid "The FloatingGateway service is not running."
|
||||
msgstr "服务未启动"
|
||||
|
||||
msgid "FloatingGateway Status"
|
||||
msgstr "服务状态"
|
||||
|
||||
msgid "Collecting data..."
|
||||
msgstr "收集数据..."
|
||||
|
||||
msgid "Preemptor"
|
||||
msgstr "旁路由"
|
||||
|
||||
msgid "Fallback"
|
||||
msgstr "主路由"
|
||||
|
||||
msgid "Floating Gateway IP"
|
||||
msgstr "浮动网关IP"
|
||||
|
||||
msgid "Check IP"
|
||||
msgstr "旁路由 IP"
|
1
luci-app-floatip/po/zh_Hans
Symbolic link
1
luci-app-floatip/po/zh_Hans
Symbolic link
@ -0,0 +1 @@
|
||||
zh-cn
|
@ -2,7 +2,7 @@
|
||||
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_VERSION:=1.1.4-20241002
|
||||
PKG_VERSION:=1.1.4-20241208
|
||||
PKG_RELEASE:=
|
||||
|
||||
LUCI_TITLE:=LuCI support for wxedge
|
||||
@ -13,6 +13,14 @@ define Package/luci-app-wxedge/conffiles
|
||||
/etc/config/wxedge
|
||||
endef
|
||||
|
||||
# prerm
|
||||
# postrm
|
||||
define Package/luci-app-wxedge/prerm
|
||||
#!/bin/sh
|
||||
docker rm -f wxedge
|
||||
exit 0
|
||||
endef
|
||||
|
||||
include $(TOPDIR)/feeds/luci/luci.mk
|
||||
|
||||
# call BuildPackage - OpenWrt buildroot signature
|
||||
|
@ -2,14 +2,12 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=vlmcsd
|
||||
PKG_VERSION:=svn1113
|
||||
PKG_RELEASE:=3
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://codeload.github.com/Wind4/vlmcsd/tar.gz/$(PKG_VERSION)?
|
||||
PKG_HASH:=62f55c48f5de1249c2348ab6b96dabbe7e38899230954b0c8774efb01d9c42cc
|
||||
|
||||
PKG_LICENSE:=MIT
|
||||
PKG_LICENSE_FILES:=LICENSE
|
||||
PKG_MAINTAINER:=fuyumi <280604399@qq.com>
|
||||
|
||||
PKG_BUILD_PARALLEL:=1
|
||||
@ -20,7 +18,6 @@ define Package/vlmcsd
|
||||
SECTION:=net
|
||||
CATEGORY:=Network
|
||||
TITLE:=vlmcsd for OpenWRT
|
||||
URL:=http://forums.mydigitallife.info/threads/50234
|
||||
DEPENDS:=+libpthread
|
||||
endef
|
||||
|
||||
@ -28,8 +25,10 @@ define Package/vlmcsd/description
|
||||
vlmcsd is a KMS Emulator in C.
|
||||
endef
|
||||
|
||||
MAKE_FLAGS += \
|
||||
-C $(PKG_BUILD_DIR)
|
||||
define Build/Prepare
|
||||
$(call Build/Prepare/Default)
|
||||
rm $(PKG_BUILD_DIR)/GNUmakefile
|
||||
endef
|
||||
|
||||
define Package/vlmcsd/install
|
||||
$(INSTALL_DIR) $(1)/usr/bin
|
||||
|
35
vlmcsd/src/Makefile
Normal file
35
vlmcsd/src/Makefile
Normal file
@ -0,0 +1,35 @@
|
||||
SRCDIR := src
|
||||
BINDIR := bin
|
||||
OBJDIR := build
|
||||
|
||||
TARGETS := $(BINDIR)/vlmcs $(BINDIR)/vlmcsd
|
||||
|
||||
.PHONY: all
|
||||
all: $(BINDIR) $(TARGETS)
|
||||
|
||||
$(BINDIR)/vlmcs: $(OBJDIR)/vlmcs.o $(OBJDIR)/kmsdata-full.o $(OBJDIR)/crypto.o \
|
||||
$(OBJDIR)/kms.o $(OBJDIR)/endian.o $(OBJDIR)/output.o \
|
||||
$(OBJDIR)/shared_globals.o $(OBJDIR)/helpers.o \
|
||||
$(OBJDIR)/network.o $(OBJDIR)/rpc.o \
|
||||
$(OBJDIR)/crypto_internal.o $(OBJDIR)/dns_srv.o
|
||||
$(CC) $(LDFLAGS) -o $@ $^
|
||||
|
||||
$(BINDIR)/vlmcsd: $(OBJDIR)/vlmcsd.o $(OBJDIR)/kmsdata.o $(OBJDIR)/crypto.o \
|
||||
$(OBJDIR)/kms.o $(OBJDIR)/endian.o $(OBJDIR)/output.o \
|
||||
$(OBJDIR)/shared_globals.o $(OBJDIR)/helpers.o \
|
||||
$(OBJDIR)/network.o $(OBJDIR)/rpc.o \
|
||||
$(OBJDIR)/crypto_internal.o
|
||||
$(CC) $(LDFLAGS) -o $@ $^
|
||||
|
||||
$(OBJDIR)/%.o: $(SRCDIR)/%.c | $(OBJDIR)
|
||||
$(CC) $(CFLAGS) -c $< -o $@
|
||||
|
||||
$(OBJDIR):
|
||||
@mkdir -p $(OBJDIR)
|
||||
|
||||
$(BINDIR):
|
||||
@mkdir -p $(BINDIR)
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
@rm -rf $(OBJDIR) $(BINDIR)
|
Loading…
Reference in New Issue
Block a user