xref: /f-stack/doc/F-Stack_Build_Guide.md (revision 28e10b57)
1ba50df96Sxklllll# F-Stack Build GUide
2ba50df96Sxklllll
3ba50df96SxklllllThe procedures to compile f-stack in different linux releases is almost the same, but there are still some points you need to pay attention to. This document aims to help you solve some of the problems you may meet when compiling f-stack in different linux releases.
4ba50df96Sxklllll
5ba50df96Sxklllll```sh
6ba50df96Sxklllll$ sudo -i
7ba50df96Sxklllll# in centos and redhat
8ba50df96Sxklllll$ yum install -y git gcc openssl-devel kernel-devel-$(uname -r) bc numactl-devel python
9ba50df96Sxklllll# in ubuntu
10ba50df96Sxklllll$ apt-get install git gcc openssl libssl-dev linux-headers-$(uname -r) bc libnuma1 libnuma-dev libpcre3 libpcre3-dev zlib1g-dev python
11ba50df96Sxklllll
12ba50df96Sxklllll$ mkdir /data/f-stack
13ba50df96Sxklllll$ git clone https://github.com/F-Stack/f-stack.git /data/f-stack
14ba50df96Sxklllll
15ba50df96Sxklllll# compile dpdk
16ba50df96Sxklllll$ cd /data/f-stack/dpdk
17ba50df96Sxklllll$ make config T=x86_64-native-linuxapp-gcc
18ba50df96Sxklllll$ make
19ba50df96Sxklllll
20ba50df96Sxklllll# Compile f-stack lib
21ba50df96Sxklllll$ export FF_PATH=/data/f-stack
22ba50df96Sxklllll$ export FF_DPDK=/data/f-stack/dpdk/build
23ba50df96Sxklllll$ cd /data/f-stack/lib
24ba50df96Sxklllll$ make
25ba50df96Sxklllll
26ba50df96Sxklllll# Compile Nginx
27*28e10b57Sfengbojiang(姜凤波)$ cd ../app/nginx-1.16.1
28ba50df96Sxklllll$ ./configure --prefix=/usr/local/nginx_fstack --with-ff_module
29ba50df96Sxklllll$ make
30ba50df96Sxklllll$ make install
31ba50df96Sxklllll
32ba50df96Sxklllll# Compile Redis
33ba50df96Sxklllll$ cd ../redis-3.2.8
34ba50df96Sxklllll$ make
35ba50df96Sxklllll
36ba50df96Sxklllll# Compile f-stack tools
37ba50df96Sxklllll$ cd ../../tools
38ba50df96Sxklllll$ make
39ba50df96Sxklllll
40ba50df96Sxklllll# Compile helloworld examples
41ba50df96Sxklllll$ cd ../examples
42ba50df96Sxklllll$ make
43ba50df96Sxklllll```
44ba50df96Sxklllll
45*28e10b57Sfengbojiang(姜凤波)## Compile tools in Ubuntu
46ba50df96Sxklllll
47ba50df96Sxklllll- remove '\\' in statement printf at f-stack/tools/netstat/Makefile line 70, now it should be:
48ba50df96Sxklllll
49ba50df96Sxklllll```
50ba50df96Sxklllll-   printf("\#define\tN%s\t%s\n", toupper($$2), i++);
51ba50df96Sxklllll+   printf("#define\tN%s\t%s\n", toupper($$2), i++);
52ba50df96Sxklllll```
53ba50df96Sxklllll
54ba50df96Sxklllll## Compile dpdk in virtual machine
55ba50df96Sxklllll
56ba50df96Sxklllll- f-stack/dpdk/lib/librte_eal/linuxapp/igb_uio/igb_uio.c line 279:
57ba50df96Sxklllll```
58ba50df96Sxklllll
59ba50df96Sxklllll-   if (pci_intx_mask_supported(udev->pdev)) {
60ba50df96Sxklllll+   if (true || pci_intx_mask_supported(udev->pdev)) {
61ba50df96Sxklllll```